cordova插件編寫與使用

安裝插件

npm install -g plugman

創(chuàng)建目錄

plugman create --name EchoPlugin --plugin_id com.joker.cordova --plugin_version 1.0.0
創(chuàng)建成功后你將得到如下目錄:

創(chuàng)建目錄

plugin.xml內(nèi)容

<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.joker.cordova" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <name>EchoPlugin</name>
    <js-module name="EchoPlugin" src="www/EchoPlugin.js">
        <clobbers target="cordova.plugins.EchoPlugin" />
    </js-module>
</plugin>

id為plugman創(chuàng)建命令使用的--plugin_id
version為創(chuàng)建命令使用的--plugin_version

添加android平臺(插件)

cd EchoPlugin/
plugman platform add --platform_name android
執(zhí)行后你將得到如下目錄:

添加android平臺

EchoPlugin為默認(rèn)插件跪呈,該插件返回調(diào)用的字符串參數(shù)凉敲。
EchoPlugin.java為繼承CordovaPlugin插件的類隅肥,主要內(nèi)容如下

public class EchoPlugin extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("coolMethod")) {
            String message = args.getString(0);
            this.coolMethod(message, callbackContext);
            return true;
        }
        return false;
    }

    private void coolMethod(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }
}

核心方法execute執(zhí)行JS的調(diào)用
接收參數(shù):
action調(diào)用方法名怜森,
args調(diào)用方法傳遞的參數(shù)
callbackContext異步回調(diào)函數(shù),向JS返回執(zhí)行結(jié)果

添加package.json

(插件安裝需要)
添加后目錄

添加package.json

package.json內(nèi)容

{
    "name": "cordova-plugin-echo",
    "version": "1.0.0",
    "description": "A sample Apache Cordova application that responds to the deviceready event.",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "Apache Cordova Team",
    "license": "Apache-2.0",
    "cordova": {
        "id": "cordova-plugin-echo",
        "platforms": [
            "android"
        ]
    }
}

文件內(nèi)容根據(jù)自己使用調(diào)整

修改插件配置文件plugin.xml

配置解析

plugin.xml

<?xml version='1.0' encoding='utf-8'?>
<plugin 
    id="cordova-plugin-echo" 
    version="1.0.0" 
    xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <name>EchoPlugin</name>
    <js-module name="EchoPlugin" src="www/EchoPlugin.js">
        <clobbers target="EchoPlugin" />
    </js-module>
    <platform name="android">
        <config-file parent="/*" target="res/xml/config.xml">
            <feature name="EchoPlugin">
                <param name="android-package" value="com.joker.cordova.EchoPlugin" />
            </feature>
        </config-file>
        <config-file parent="/*" target="AndroidManifest.xml"></config-file>
        <source-file src="src/android/EchoPlugin.java" target-dir="src/com/joker/cordova" />
    </platform>
</plugin>

在Ionic中使用

安裝插件
cordova plugin add /Users/joker/Workspace/ionic/cordova/EchoPlugin
插件調(diào)用

插件調(diào)用

cordova run android
順利的話在APP中可以看到alert的信息青伤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市眶掌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朴爬,老刑警劉巖即寒,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件召噩,死亡現(xiàn)場離奇詭異,居然都是意外死亡具滴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門构韵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疲恢,你說我怎么就攤上這事凶朗「员眨” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵萎攒,是天一觀的道長。 經(jīng)常有香客問我耍休,道長刃永,這世上最難降的妖魔是什么羊精? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任斯够,我火速辦了婚禮,結(jié)果婚禮上喧锦,老公的妹妹穿的比我還像新娘读规。我一直安慰自己,他們只是感情好燃少,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布束亏。 她就那樣靜靜地躺著,像睡著了一般阵具。 火紅的嫁衣襯著肌膚如雪碍遍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天阳液,我揣著相機(jī)與錄音怕敬,去河邊找鬼。 笑死帘皿,一個胖子當(dāng)著我的面吹牛东跪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹰溜,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼越庇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奉狈?” 一聲冷哼從身側(cè)響起卤唉,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仁期,沒想到半個月后桑驱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跛蛋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年熬的,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赊级。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡押框,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出理逊,到底是詐尸還是另有隱情橡伞,我是刑警寧澤盒揉,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站兑徘,受9級特大地震影響刚盈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挂脑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一藕漱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧崭闲,春花似錦肋联、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沙兰。三九已至,卻和暖如春鼎天,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背暑竟。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工但荤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腹躁。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓纺非,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烧颖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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

  • 前言:用cordova開發(fā)hybrid app的過程中拆火,由于是html5開發(fā)的app们镜,在手機(jī)上很多權(quán)限受限制...
    京東內(nèi)部優(yōu)惠券閱讀 5,346評論 5 65
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • Plugin.xml plugin.xml文件定義了你的插件所需的結(jié)構(gòu)和設(shè)置憎账。它有幾個元素來提供有關(guān)你的插件的詳細(xì)...
    葛高召閱讀 1,182評論 0 1
  • 這幾天一直被一個問題困擾著卡辰,再加上炎熱的天氣,更是讓我煩上加煩反砌,有瞬間被點(diǎn)爆的感覺。 其實(shí)問題的原因很簡單宴树,我的鼠...
    西云閱讀 269評論 0 0
  • 廣告晶疼,作為宣傳手段,是廣告主花費(fèi)一定的廣告費(fèi)用通過廣告媒介向廣告對象介紹廣告信息翠霍,促使廣告對象購買其商品,最終使...
    呢程閱讀 2,978評論 0 2