ionic 自定義插件調用aar

使用ionic調用aar 插件開發。


我使用的是第三方的aar的庫去做的。

1.使用plugman生成對應的插架的目錄。(不是本文的重點)參考地址 參考地址2
2.使用 plugman 生成配置文件

plugman createpackagejson <這裏填第一步項目的目錄的根目錄>

3.添加android 平臺

ionic platform add android
如果運行不了,就換個命令
ionic platform add –platform_name android



4. 生成之後,請修改插件 config.xml 配置

說明:將生成的java文件,複製到指定的android項目文件下



對比查看。
param標籤的值,就是最後的java文件的地址,一定要一樣,不然插件是調不起來的。
5.添加aar包的配置,添加aar包,記得添加build.gradle 配置

<?xml version='1.0' encoding='utf-8'?>
<plugin id="jin_scan" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<js-module name="scan" src="www/scan.js">
  <clobbers target="cordova.plugins.scan" />
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="scan">
<param name="android-package" value="jin_scan.scan" />
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
// 這裏是配置你的java的文件的目錄
<source-file src="src/android/scan.java" target-dir="src/jin_scan/scan" />
// 這裏要配置你的gradle編譯的文件的位置
<framework src="src/android/build.gradle" custom="true" type="gradleReference" />
// 如果你的aar包裏面有activity的話,那麼這裏必須要進行配置,不然會沒有權限或者Activity沒有申明的錯誤
<config-file target="AndroidManifest.xml" parent="/manifest/application">
      <activity android:name="com.google.zxing.client.android.CaptureActivity" android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" android:exported="false" />
      <activity android:name="com.google.zxing.client.android.encode.EncodeActivity" android:label="Share"/>
    </config-file>
    <config-file target="AndroidManifest.xml" parent="/manifest">
      <uses-permission android:name="android.permission.CAMERA"/>
      <uses-permission android:name="android.permission.FLASHLIGHT"/>
      <uses-feature android:name="android.hardware.camera" android:required="true"/>
    </config-file>
// 這裏是配置你的aar的地址, 後面的target是指你的複製到項目裏面的aar的名字。要填的跟gradle裏面一樣,
//不然在gradle添加到項目中的時候會找不到aar包
<resource-file src="aar/barcodescanner-release-2.1.2.aar" target="aar/barcodescanner-release-2.1.2.aar" />
</platform>
</plugin>

6.編寫java調用aar庫的方法,要在自動生成的那個庫裏面寫。
7.編寫www文件夾下的js方法,調用原生的方法。
注意:
7.1 exec方法去調用本地的java方法,參數要對應好。不然會找不到方法插件的名字,調用的方法名
7.2 調用上一步的js,使用 cordova.plugins.scan.scan () 這個 方法去執行,第一個scan是指你的插件的名字,你去看plugin.xml裏面的clobbers 這個標籤,target就是你怎麼去調用插件。第二個scan是你的插件裏面的方法。

我的整個插件下載地址:插件項目下載地址
ps:目錄結構
|項目目錄
| – aar
| —- aar的包地址
| – src
| —- android
| —— java的代碼的地址
| – www
| – build.gradle
| – plugin.xml
| – package.json

8.將本地的plugin導入到項目中

cordova plugin add <本地插件目錄>

移除插件:

cordova plugin rm <插件的名字>

參考地址1,這個地址裏面的gradle有格式問題
建議直接下載我的插件的整個項目參考,配置文件。
我的整個插件下載地址:插件項目下載地址






問題總結:

1.插件調用不起來:直接再js文件裏面打alert(“”);看 你的js文件是否正在
2.看Android 項目下 res/xml文件下的config.xml 文件,找到你的插件名字,feature標籤。

<feature name="paymentPlugin">
// 排除了1之後,看value這個java文件是否存在。
     <param name="android-package" value="payment_id.paymentPlugin" />
</feature>

3.如果不能debug的話,仔細看一下你的類是否被調用了,我出現debug的情況是因爲,我debug的類是重複生成的,沒有刪除。實際運行的是另一個相同的類。

4.有時候需要重新生成android項目,使用下面的命令行:

ionic platform add –platform_name android

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章