Android 和 Cordova 混合開發(fā) 以及自定義插件

寫在開始 :

主要介紹了在Android平臺(tái)上使用Cordova 開發(fā) JS/HTML 程序 , Cordova 提供了一些設(shè)備相關(guān)的API, 通過api 可以通過 js 調(diào)用訪問原生的設(shè)備功能 例如 攝像頭, 麥克風(fēng)等功能, 提供了統(tǒng)一的javascript 類庫(kù), 以及為這些類庫(kù)所用的設(shè)備相關(guān)的原生代碼后臺(tái).

一 , 安裝Cordova 開發(fā)環(huán)境

Cordova 命令行開發(fā)工具使用NPM工具包.

1 需要下載安裝 Node.js 我當(dāng)時(shí)下載的時(shí)候翻墻下載的,
2 安裝 cordova 在dos 窗口輸入下面的命令全局安裝

 npm install -g cordova 

-g 代表全局安裝

二 創(chuàng)建應(yīng)用

使用 dos 窗口來(lái)創(chuàng)建應(yīng)用
1 在文件目錄下創(chuàng)建一個(gè)應(yīng)用

//  路徑名> cordova create [項(xiàng)目名] [包名]
cordova create CordovaDemo com.storm.cordovademo

1.1 Android studio 的安裝 和sdk 的安裝就不介紹了 安裝步驟大家都會(huì)
2 在項(xiàng)目中添加Android 平臺(tái) 進(jìn)入到項(xiàng)目目錄下

// cordova platform add [平臺(tái)名]
cordova platform add android 

創(chuàng)建成功后通過Android Studio 導(dǎo)入項(xiàng)目


導(dǎo)入cordova目錄下android平臺(tái).png

編譯后項(xiàng)目目錄如圖所示


導(dǎo)入完成的目錄結(jié)構(gòu).png

集成完成后 運(yùn)行 顯示

運(yùn)行結(jié)果 .png

這樣 就完成了在AS 中集成的cordova項(xiàng)目

二 自定義插件

1 在cordova 中提供了一些常用的插件供大家使用

// 獲取當(dāng)前應(yīng)用的版本號(hào)
cordova plugin add cordova-plugin-app-version

// 獲取網(wǎng)絡(luò)連接信息
cordova plugin add cordova-plugin-network-info 

// 獲取 GPS 信息
cordova plugin add cordova-plugin-geolocation

// 獲取設(shè)備信息 
cordova plugin add cordova-plugin-device

// 調(diào)用設(shè)備上的攝像頭
cordova plugin add cordova-plugin-camera

// 在設(shè)備上讀/寫 
cordova plugin add cordova-plugin-file

// 文件上傳或者下載 
cordova plugin add cordova-plugin-file-transfer

// 獲取設(shè)備上聯(lián)系人的信息 
cordova plugin add cordova-plugin-contacts

// 二維碼掃描和創(chuàng)建
cordova plugin add phonegap-plugin-barcodescanner
還有好多 自行百度 

二 自定義插件 流程
1 安裝 plugman , cordova 需要使用這個(gè)來(lái)創(chuàng)建插件

// -g 代表全局安裝
npm install -g plugman 

2 安裝完成后 使用pluginman 創(chuàng)建一個(gè)插件

 // plugman create --name[插件名] --plugin_id[插件ID] --plugin_version[插件版本號(hào)]
plugman create --name ToastPlugin --plugin_id cordova-plugin-toast --plugin_version 1.0.0

創(chuàng)建完成后 打開cordova 的項(xiàng)目 可以看到這個(gè)文件夾


插件所在的文件夾.png
插件文件夾下的目錄.png

生成的插件目錄如下


插件目錄.png

如果規(guī)范的Android 插件的話 在src目錄下新建android 目錄 并且在android 目錄下新建類
目錄如下 :


添加android后目錄.png

一般我使用命令 進(jìn)入到插件目錄下創(chuàng)建目錄

plugman platform add --platform_name android

3 創(chuàng)建完成后
修改plugin.xml 文件中的配置

<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-toast-plugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
  <name>ToastPlugin</name>
  <js-module name="ToastPlugin" src="www/ToastPlugin.js">
    <clobbers target="navigator.toast"/>
  </js-module>
  <platform name="android">
    <config-file parent="/*" target="res/xml/config.xml">
      <feature name="ToastPlugin"><param name="android-package" value="org.apache.cordova.toast.ToastPlugin"/></feature>
    </config-file>
    <config-file parent="/*" target="AndroidManifest.xml"></config-file>
    <source-file src="src/android/ToastPlugin.java" target-dir="src/org/apache/cordova/toast"/>
  </platform>
</plugin>
添加到android項(xiàng)目中.png

plugin id 為插件的id 后面為版本號(hào) 插件名字
js-module 在項(xiàng)目中 asset下的plugin 目錄下js文件 也就是 插件需要的js文件

feature name value 對(duì)應(yīng)android 項(xiàng)目中/ res/xml/config.xml 文件下的 feature 標(biāo)簽的值


config.xml

source-file 標(biāo)簽對(duì)應(yīng) 了 我們android 編寫的java文件 以及放置的目標(biāo)位置 一一對(duì)應(yīng)


image.png
image.png

4 然后就是修改js文件


js文件

其中的 toast 對(duì)應(yīng)plugin.xml文件feature的name
showToast 對(duì)應(yīng) js 中調(diào)用的方法

image.png

和這個(gè)對(duì)應(yīng) js響應(yīng)成功后調(diào)用這個(gè)方法

5 準(zhǔn)備生成package.json文件


package.json

生成流程如下 : 創(chuàng)建module
1 命令行進(jìn)到插件目錄下 輸入

npm init

然后會(huì)有提示信息 具體描述可以看的出來(lái) 直接回車生成就可以 , 生成之后也可以修改

image.png

然后 還需要增加一些
image.png

{
  "name": "toastplugin",
  "version": "1.0.0",
  "description": "",
  "cordova": {
    "id": "cordova-toast-plugin",
    "paltforms": [
      "android"
    ]
  },
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "storm",
  "license": "ISC"
}

添加控件的Id 和 平臺(tái)

6 準(zhǔn)備完成后 向android 項(xiàng)目中加入插件
進(jìn)入到項(xiàng)目android 平臺(tái)的目錄 :

cordova plugin add D:\working\Cordova\Demo\ToastPlugin

添加完成.
移除插件

cordova plugin remove cordova-toast-plugin 

即可移除
添加成功后 在android 項(xiàng)目目錄下會(huì)多出以下文件

image.png
image.png

未完待續(xù)....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末约啊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡割择,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門萎河,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)荔泳,“玉大人,你說(shuō)我怎么就攤上這事虐杯÷旮瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵擎椰,是天一觀的道長(zhǎng)支子。 經(jīng)常有香客問我,道長(zhǎng)达舒,這世上最難降的妖魔是什么值朋? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任叹侄,我火速辦了婚禮,結(jié)果婚禮上昨登,老公的妹妹穿的比我還像新娘趾代。我一直安慰自己,他們只是感情好丰辣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布撒强。 她就那樣靜靜地躺著,像睡著了一般笙什。 火紅的嫁衣襯著肌膚如雪飘哨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天得湘,我揣著相機(jī)與錄音杖玲,去河邊找鬼。 笑死淘正,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的臼闻。 我是一名探鬼主播鸿吆,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼述呐!你這毒婦竟也來(lái)了惩淳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乓搬,失蹤者是張志新(化名)和其女友劉穎思犁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體进肯,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡激蹲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了江掩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片学辱。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖环形,靈堂內(nèi)的尸體忽然破棺而出策泣,到底是詐尸還是另有隱情,我是刑警寧澤抬吟,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布萨咕,位于F島的核電站,受9級(jí)特大地震影響火本,放射性物質(zhì)發(fā)生泄漏危队。R本人自食惡果不足惜聪建,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望交掏。 院中可真熱鬧妆偏,春花似錦、人聲如沸盅弛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)挪鹏。三九已至见秽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讨盒,已是汗流浹背解取。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留返顺,地道東北人禀苦。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像遂鹊,于是被迫代替她去往敵國(guó)和親振乏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容