uniapp安卓应用如何使用第三方原生aar包

起因:用uniapp开发的安卓app需要集成到一个由别人开发的原生的app中去,统一在原生app登录后携带token跳转到uniapp开发的app中,但是在uniapp中需要解析跳转过来携带的token必须要用到他们的一个原生开发的aar包。

在uniapp中如果要使用aar包,必须要按照uniapp官网上的规则步骤来开发这个aar包,但是由于这个第三方的封装好来解析token的aar包(下文中统称为第三方aar)还需要其他原生的app使用,只能靠我们自己来做适配。

所以我们只好自己按照uniapp官网上的规则来开发一个aar包作为一个适配层包在第三方aar外面。

调用流程就是:

  1. uniapp调用自己的aar包中的方法
  2. 自己的aar包调用第三方的aar包

一、自定制aar引入第三方aar

  1. 按照uniapp官网上开发aar插件的步骤uniapp官网上的规则步骤创建一个Module,也就是mylibrary1文件夹,创建后报错如下:

解决报错方法: 需要将项目下的uniplugin_module文件夹中的build.gradle中的所有内容复制到自己创建的mylibrary1中的build.gradle中去,错误就解决了

2.将第三方aar包(external_library.aar)放入自己创建的mylibrary1文件夹下的libs中去

3.在mylibrary1文件夹下的build.gradle文件中添加以下代码

二、编写java代码调用第三方aar包中的方法

创建一个TestInfo.java的文件,在文件中编写按照uniapp官网上的规则编写可以通过uniapp调用的方法

注意: 一定要按照uniapp官网上的规则编写比如以下:

  • 创建TestInfo类必须继承 UniModule 类
  • 扩展方法必须加上@UniJSMethod (uiThread = false or true) 注解。
  • 回调函数必须是UniJSCallback类型的

然后给自己写的aar包命名

三、打包aar

1.打包成aar,鼠标选中mylibrary1文件夹,点击build中的make module进行打包。

报错如下:

解决报错方法如下,删除这两个文件夹,然后重新打包:

查看打包的aar结果文件,发现并没有将第三方的aar打包进来

2.直接打包aar,并不会把第三方aar包打入自己的aar中去,我们需要用到一个第三方库来将第三方aar包融入我们自己要打的aar包中去。需要根目录下的build.gradle中添加以下代码。

在mylibrary1文件夹下的build.gradle中把刚写的implementation改成embed

还需要我们在mylibrary1文件夹添加如下代码,同步完后重新打包

我们查看我们自己打包后的aar包,发现多了一个libs文件夹,文件夹中的r-classes.jar就是打包后的第三方aar包

四、uniapp中引入我们自己的aarb包

1.在uniapp根目录下创建nativeplugins文件夹,文件夹下结构如下: (mylibrary.aar就是我们自己的aar包)

lua 复制代码
|--nativeplugins
    |--mylibrary
        |--android
            |-- mylibrary.aar
        |--package.json

package.json中的内容如下,详细格式规则可以查看uniapp官网

javascript 复制代码
{
	"name": "mylibrary",
	"id": "mylibrary",
	"version": "1.1.1",
	"description": "测试使用",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
		"android": {
			"plugins" :[
				{
					"type": "module",
					"name": "mylibrary",
					"class": "uni.android.mylibrary.TestInfo"
				}
			],
			"integrateType": "aar"
		}
	}
}

2.在uniapp页面中使用aar包中的原生方法如下:

相关推荐
福兮说5 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理5 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6666 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)6 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan7 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_7 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒8 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技8 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu9 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
默_笙9 小时前
🛴 从散件到整机:DeepAgents 与 Agent 身上预留的那些"插槽"(前置介绍)
前端·javascript