ionic3編寫插件調(diào)用aar.

ionic3如何編寫插件,我這里就不詳細(xì)描述了,給出一個(gè)參考地址參考這里

重點(diǎn)說的是如何調(diào)用aar以及關(guān)于activity 的問題。

1.使用plugman生成對(duì)應(yīng)的插架的目錄。

? ??cd ionic-how-to-create-cordova-plugin

????mkdir plugins_src

????cd plugins_src

????plugman create --name HelloWorld --plugin_id cordova-plugin-hello-world --plugin_version 0.0.1

????cd HelloWorld

????plugman platform add --platform_name android

????plugman platform add --platform_name ios

????cd ..

????cd ..

????ionic cordova plugin add plugins_src/HelloWorld

最后一步基本都會(huì)報(bào)錯(cuò),因?yàn)槲覀內(nèi)鄙僖粋€(gè) packagejson的文件,plugman提供了這個(gè)功能。

2.使用 plugman 生成配置文件

? ??plugman createpackagejson .

簡(jiǎn)單回答一些問題,生成的packagejson 看起來有點(diǎn)像這樣

? ??{

????"name": "HelloWorld",

????"version": "0.0.1",

????"description": "HelloWorld",

????"cordova": {

????"id": "cordova-plugin-hello-world",

????"platforms": [

????"android",

????"ios"

????]

????},

????"keywords": [

????"ecosystem:cordova",

????"cordova-android",

????"cordova-ios"

????],

????"author": "Garfield",

????"license": "ISC"

????}

**這里面有個(gè)坑,雖然我的例子里面是用了 cordova-plugin-hello-world? 這樣的插件名字,但是我不建議你這么做,在我的編譯環(huán)境下,java 沒有辦法認(rèn)識(shí)帶有中橫線的包,我索性都改成了 . **

3. 目錄結(jié)構(gòu)

拷貝你的.aar到你的 plugins_src 下面,然后建立一個(gè)空白的build.gradle,這里的內(nèi)容我們待會(huì)兒在添加。

4 利用你的Android Studio,拷貝需要的gradle

在AS下如何使用aar ,這個(gè)應(yīng)該就相對(duì)簡(jiǎn)單了吧,新建一個(gè)工程,然后新建模塊,導(dǎo)入aar,就行了。

如果你的aar 有需要的依賴,也一起填進(jìn)來。這個(gè)時(shí)候查看你的工程的build.gradle ,我們需要拷貝其中

????repositories{

? ? jcenter()

? ? flatDir{

? ? ? dirs 'libs'

? ? }

? ? }

? ? dependencies {

? ? compile(name:'youraarfile', ext:'aar')

? ? compile 'com.google.code.gson:gson:2.2.4'

? ? compile 'com.android.support:support-v13:26.1.0'

? ? }

? android {

? ? ? defaultConfig {

? ? ? ? ? minSdkVersion 16

? ? ? ? ? targetSdkVersion 22

? ? ? }

? ? ? packagingOptions {

? ? ? ? ? exclude 'META-INF/NOTICE'

? ? ? ? ? exclude 'META-INF/LICENSE'

? ????}

? ????}

其中重要的地方是:? ?

? ? compile(name:'youraarfile', ext:'aar')

5? 修改plugin.xml

這里面有幾個(gè)重點(diǎn),

添加

第二個(gè)重點(diǎn)是 如果你的aar 里面有activity ,也需要添加進(jìn)來。

如果你不知道aar 里面有什么,把a(bǔ)ar的后綴改成zip,然后解壓縮,同樣可以看到?AndroidManifest.xml。

其中關(guān)于Activity 的部分拷貝到你的plugin.xml 中。

6 編寫代碼

插件.java 中如果用到了 activity ,會(huì)出現(xiàn)一個(gè)提示,

????Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

大致的意思是 你想從一個(gè)?Activity 的外部呼叫這個(gè)?Activity的話 ,需要一個(gè)?FLAG_ACTIVITY_NEW_TASK 標(biāo)志。

//下面最關(guān)鍵,利用intent啟動(dòng)新的Activity

? ? ? ? ? ? Intent intent = new Intent(cordova.getActivity(), youaarfile.Activity.class);

? ? ? ? ? ? intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

? ? ? ? ? ? intent.putExtra("mode","auth");

? ? ? ? ? ? intent.setPackage(this.cordova.getActivity().getApplicationContext().getPackageName());

? ? ? ? ? ? if (this.cordova != null) {

? ? ? ? ? ? ? ? this.cordova.startActivityForResult((CordovaPlugin) this, intent, 0);

? ? ? ? ? ? }

7 至于在page里面如何調(diào)用plugin 類似下面就可以了

????declare var cordova: any;

????cordova.plugins.yourplugin.coolMethod({

? ? ? ????_sMessage: "Hello World"

? ????? }, success, failure);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,143評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,416評(píng)論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,940評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,170評(píng)論 0 287
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,709評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,597評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,784評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評(píng)論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,029評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評(píng)論 1 280
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,403評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,746評(píng)論 2 370

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

  • 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架 混合開發(fā)框架:...
    偉子男閱讀 5,250評(píng)論 0 161
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,297評(píng)論 1 9
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,461評(píng)論 2 45
  • 文 | 丁小雅 圖 | 丁小雅 我這周非常榮幸的參加了公司的拓展培訓(xùn),老實(shí)講,這是我第一次參加拓展培訓(xùn),我以為...
    丁小雅閱讀 506評(píng)論 1 6
  • 約束是一種限制,它通過對(duì)表的行或列的數(shù)據(jù)做出限制,來確保表的數(shù)據(jù)的完整性、唯一性。 約束分類 |約束類型 |主...
    lupinwu閱讀 176評(píng)論 0 0