ionic 自定义插件调用aar

来源:互联网 发布:淘宝联盟网站推广设置 编辑:程序博客网 时间:2024/06/05 04:04

使用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

原创粉丝点击