uniapp-原生android插件开发摘要
- 软件开发
- 2025-09-17 09:06:01

uni-app在App侧的原生扩展插件,支持使用java、object-c等原生语言编写,从HBuilderX 3.6起,新增支持了使用uts来开发原生插件。
基础项目 UniPlugin-Hello-AS工程请在App离线SDK中查找基础项目(App离线SDK)已经配置好了自定义插件所需要的环境,直接使用基础项目添加自己的自定义插件或者修改以有的自定义插件
扩展 Module Module 扩展 非 UI 的特定功能Module 不支持代码通过 new Module的方式创建对象。无法正常使用! 扩展组件 Component Component 扩展 实现特别功能的 Native 控件Component 不支持代码中 new Component 创建对象。无法正常使用!更多其他细节查看:开发者须知 | uni小程序SDK
集成uni-app项目测试插件安装最新HbuilderX 大于等于1.4.0+
创建uni-app工程或在已有的uni-app工程编写相关的.nvue 和.vue文件。使用uni-app插件中的module 或 component。
xxx.vue 示例代码(源码请参考UniPlugin-Hello-AS项目中uniapp示例工程源码文件夹的unipluginDemo工程,导入示例工程时需要重新获取appid)
选择 发行--->原生APP-本地打包--->生成本地打包App资源 等待资源生成!(这里是指hx项目)在控制台会输出编译日志,编译成功会给出App资源路径(如:项目 unipluginDemo 导出成功,路径为:/Users/admin/Downloads/4.45/AndroidSDK@4.45.82353_20250106/UniPlugin-Hello-AS/uniapp示例工程源码/unipluginDemo/unpackage/resources)把APP资源文件放入到UniPlugin-Hello-AS工程下 app Module根目录assets/apps/测试工程appid/ 对应目录下,再修改assets/data/dcloud_control.xml!修改其中appid=“测试工程appid”!,测试工程UniPlugin-Hello-AS 已有相关配置可参考。具体可查看App离线打包。
appid注意 一定要统一否则会导致应用无法正常运行!
配置"app"Module下的 build.gradle. 在dependencies节点添加插件project引用 (以uniplugin_richalert为例) // 添加uni-app插件 implementation project(':uniplugin_richalert') 运行测试。测试运行时一切要以真机运行为主。1.10版本起需要申请Appkey,具体请点击链接
生成uni-app插件 完整的android 插件包.ZIP包含: android文件 .aar文件 : 包括插件aar、插件所依赖的aar。libs文件夹 : 存放插件包依赖的第三方 .jar文件和.so文件 package.json 插件信息 点击查看具体说明 准备相关文件 创建以插件id命名的文件夹创建android文件夹。并将该文件夹放入到新建的插件id命名的文件夹中示例:
生成插件的aar并放入到android目录下
选择Gradle--->插件module--->Tasks--->build或other--->assembleRelease编译module的aar文件注意:新版本Android studio将assembleRelease放入other中了
创建package.json文件并填写必要的信息。放入到android目录下
创建libs文件夹。并放入到android目录下
将插件依赖的jar文件放入到libs文件夹中将插件依赖的.so文件放入到libs文件夹中将插件依赖的aar文件放入到插件android目录下
注意
目前发现部分同学将开发插件的uniapp-v8-release.aar、uniapp-release.aar放到了插件包libs中。导致冲突。切记不要放进libs里去!!! 插件所依赖的aar要放到android目录下。
Andorid 插件包配置uni原生插件如果支持Android平台,则需在插件下添加android目录,并将所有Android平台相关的资源都放到此目录下
aar文件,直接放到android目录下,云端打包会自动引用所有的aar文件android\libs目录,所有需要使用的jar文件放到此目录,如果包含so文件,则放到libs下对应cpu类型目录android\assets目录,Android平台需要assets资源android\res目录,Android平台需要的res资源在package.json文件中"_dp_nativeplugin"节点下添加"android"节点,根据需求配置以下数据
plugins插件注册配置,JSON数组对象,至少要包含一个配置项
type: 必填,插件类型,"module"表示模块插件,对应weex中的Module模式;"component"表示UI组件,对应weex中的Component模式。name 必填,注册插件的名称, 必须与插件标识一致class 必填,注册插件的类名 integrateType必填,插件集成类型,即原生导出的文件类型
aar 原生导出aar包时配置为此类型jar 原生导出jar包时配置为此类型,此时jar文件必须放到android下的libs目录中默认为aar,推荐使用aar类型
更多细节:uni小程序SDK
注意:运行时只能在手机端小程序端运行会报错, 其次在调用原生插件方法时候需要再基座下运行,要不然会报错:找不到原生插件对应的方法
uniapp-原生android插件开发摘要由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“uniapp-原生android插件开发摘要”