> 技术文档 > uni-app使用原生安卓aar文件包,让uni-app可以调用安卓原生aar文件内的方法_uniapp程序引用aar包sdk

uni-app使用原生安卓aar文件包,让uni-app可以调用安卓原生aar文件内的方法_uniapp程序引用aar包sdk


概述

        需要使用uni-app开发售货机上边的app,厂商提供了安卓原生SDK,文件名为XXX.aar,现在需要在uni-app内引入这个aar,并且调用里面的方法,由于原生aar文件里面的方法uni-app内无法直接使用,就需要用到桥接,流程就是 原生aar=>然后我们做个桥接暴露成uni-app内可以使用的方法=>最后uni-app调用我们重新封装的方法。

开始

前往uni-app官网下载工程示例

Android 离线SDK - 正式版 | uni小程序SDK

下载下来之后我们需要的就是里面UniPlugin-Hello-AS文件夹 在安卓开发器Android Studio内打开这个文件

Android Studio安装方法可以自行百度搜索保姆级安装教程

Android Studio内开发工作

下载好之后在编辑器内打开上边下载好的uni-app工程示例下的UniPlugin-Hello-AS文件夹打开之后文件的目录结构为下图我们主要用到的就是UniPlugin_module,由于在uni-app内下载解压出来最外层目录名是中文最新版,所以我单独将UniPlugin-Hello-AS文件拷贝到了其他文件夹下,防止文件带有中文会出错,以防万一。

打开UniPlugin_module这个目录

图上展示的文件夹内刚开始没有build文件夹(最后做完打包出来才会生成)

libs目录默认是空的这里面需要将你的第三方aar文件复制到这个文件夹下

打开build.gradle文件夹

在对应位置下插入这行代码name就是你的aar文件名
例如你手中的aar文件名为My-SDK-release.aar,那么name就是My-SDK-release不要后缀,ext:就是固定aar

implementation(name: \'你的aar文件名\', ext:\'aar\')

这几个数字版本号我就是按照厂商提供的aar内AndroidManifest.xml内写的,应该是最低支持的版本号(后续测试了一下如果这里写的版本号和你引入的aar里面版本号不同,最终uni-app打自定义基座会报错)

以上引入工作就算完成

下边开始讲述代码开发工作

打开文件src=>main=>java=>io.dcloud.uniplugin=>TestModule文件

 if (callback != null) { JSONObject result = new JSONObject(); result.put(\"code\", \"success\"); //这个里面就是之后在uni-app内调用的时候返回的信息 callback.invoke(result); }

导入第三方AAP类,也就是上图红框部分。这个地址查看可以在第三方aar内查看按照目录结构1.2.3.4.5 也就是com.voodoo.xxx.xx.xx 具体看你的aar内是啥样子,就按照那样写

到这一步,你的代码就算编写完成(目前只是测试里面的一个方法是否可行,后续需要用到的方法还需要添加)

开始打包成uni-app内可以调用的aar

鼠标点击到uniplugin_module上边,然后点击左上角三个杠,不同版本的编辑器左上角应该不同

按图操作点击打包,等待完成

打包完成之后uniplugin_module目录下就会出现build文件夹

最终这个文件夹就是需要在uni-app内使用的aar

uni-app内开发工作

上述已经生成了uni-app内可用的aar

打开你的uni-app项目根目录下创建nativeplugins(不可自定义名字)文件夹

创建TestPlugin文件夹,继续在下边创建android(不可自定义名字)文件夹和package.json

将刚刚你打包好的aar文件和第三方aar都拷贝到android文件夹下方

package.json文件夹下代码直接复制即可

{\"name\": \"TestPlugin\",\"id\": \"TestPlugin\",\"version\": \"0.1.3\",\"description\": \"示例插件\",\"_dp_type\":\"nativeplugin\",\"_dp_nativeplugin\":{\"android\": {\"plugins\": [{\"type\": \"module\",\"name\": \"TestPlugin\",\"class\": \"io.dcloud.uniplugin.TestModule\"}],\"integrateType\": \"aar\"}}}

注意name和id最好一致

class后边的地址可以查看刚刚你打包的aar,步骤一致的话应该是相同的

页面编写打开你需要编写代码的vue文件

完成之后点击manifest.json下的安卓/ios原生插件配置点击选择本地插件弹出框勾选点击确认

下一步 点击上方运行=>运行到手机或者模拟器=>制作自定义基座 开始打包

打包完成之后点击运行=>运行到手机或模拟器=>运行到Android APP基座选择下方使用自定义基座运行

注意:如果选择标准基座运行,之后uni-app会警告找不到插件

点击运行,开始测试,成功了。