一、 开发环境
• JAVA环境 jdk1.8
• AndroidStudio
下载地址:Android Studio官网 :
https://developer.android.google.cn/studio/index.html
• App离线SDK下载
请下载2.9.8+版本的android平台SDK.
https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#
• HBuilderX下载
官方下载地址:
https://www.dcloud.io/hbuilderx.html
二、 java代码打包成uni-app可识别的aar文件
-
将下载的App离线SDK下载解压;
-
将sdk中的UniPlugin-Hello-AS项目导入Android Studio
![](https://img-blog.csdnimg.cn/img_convert/23ac7e4a0e08443ca0fe99445734a9bf.png)
-
创建插件Library 此处我们命名为mylibrary
![](https://img-blog.csdnimg.cn/img_convert/4f82afe87d704400a5620e1293c00797.png)
![](https://img-blog.csdnimg.cn/img_convert/a6719e492d4b4f2e959ba61dcab9c79f.png)
-
将uniplugin_module 中的build.gradle内容全部复制,并覆盖mylibrary的build.gradle内容
![](https://img-blog.csdnimg.cn/img_convert/8ba5700054524409876e1668d65c21d9.png)
-
修改mylibrary 文件下的\src\main\AndroidManifest.xml 如图所示 :
![](https://img-blog.csdnimg.cn/img_convert/1ed8a19587ad4afd94fdd318fdc74efa.png)
-
删除 mylibrary 路径src下的androidTest和test(原因是在build.gradle中没有引入相关依赖,会报错,也可自行添加上依赖)
-
在mylibrary路径src\main\java编写Java代码
代码注意事项:
1). 类要继承 UniModule
2). 方法上加入注解@UniJSMethod(uiThread = false)
3). 方法必须事public 方法
-
.以JSONObject形式返回
![](https://img-blog.csdnimg.cn/img_convert/cde292961cfe472fac5c5244d15fcf01.png)
-
对于代码中涉及到com.sun.crypto.provider.SunJCE()报错问题,可在C:\Program Files\Java\jdk1.8.0_72\jre\lib\ext拷贝sunjce_provider.jar至libs中,并通过右键-add as library 引用即可
![](https://img-blog.csdnimg.cn/img_convert/5d533fae896245e1b076581003067a37.png)
-
打包成aar
选中mylibrary,通过build-makemodule “*.mylibrary” 打包
![](https://img-blog.csdnimg.cn/img_convert/0d4eddaa08044ff580d4607f6d76a334.png)
-
打包完成后,如下图位置即可找到打包成功的aar文件
![](https://img-blog.csdnimg.cn/img_convert/c76c0578347d4f43a81cce988b835f17.png)
三、 uni-app调用原生插件
Hbuilder X 打开uni-app项目
官方说明:
https://nativesupport.dcloud.net.cn/NativePlugin/
-
在nativeplugins下创建如下图结构的数据
![](https://img-blog.csdnimg.cn/img_convert/0daa1d90a2ff434784e152b75159a8ab.png)
-
按官方要求编写package.json
![](https://img-blog.csdnimg.cn/img_convert/c2cab23755304e1bb2af1580304e0c3e.png)
-
manifest.json 中添加本地插件配置
![](https://img-blog.csdnimg.cn/img_convert/7ac898ad8cb147419ad76a4d662db1ff.png)
-
打包自定义基座:运行-运行到手机或模拟器-制作自定义调试基座 。
![](https://img-blog.csdnimg.cn/img_convert/4e2d2bc91e00406aa396ca891df27539.png)
![](https://img-blog.csdnimg.cn/img_convert/a960ad60a3964a70bc664364286dbfc9.png)
-
测试运行
运行-运行到手机或模拟器-运行到Android app基座,选择自定义基座
![](https://img-blog.csdnimg.cn/img_convert/3f84b768bc054f6a9c0c2ec6fcdacf35.png)
-
前端调用:
const MyTest=uni.requireNativePlugin(‘mylibrary-debug-MyTest’);
MyTest.getTestData();