uniapp制作安卓原生插件踩坑

top. fireEvent失效的问题

本来我项目跑的好好的,结果放到公司项目半天收不到回调 

结果是因为vue3 方法 onTel会变成on-tel 全部改小写才行了

1.uniapp和Android工程互相引用讲解

uniapp原生Android插件开发入门教程 (最新版)_uniapp android 插件开发-CSDN博客

2.uniapp引用原生aar目录结构

详细尝试步骤1完成后生成的aar使用,需要新建nativeplugins然后丢进去

3.package.json示例
{
	"name": "takePreview",
	"id": "takePreview",
	"version": "0.0.2",
	"description": "安卓原生插件预览相机",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
		"android": {
			"plugins": [

				{
					"type": "component",
					"name": "TestAView",
					"class": "com.zg.takepreview.TestAView"
				}, {
					"type": "component",
					"name": "AndroidCameraView",
					"class": "com.zg.takepreview.AndroidCameraView"
				}
			],
			"integrateType": "aar",
			"parameters": {

			},
			"dependencies": []
		}
	}
}
4.加入原生插件

package.json层级+nativeplugins目录

上面错一不可,选择列表则不会出现内容

此处选择后会自动生成代码

5.uniapp工程引用原生插件调试运行必须使用自定义基座

必须原生插件弄好之后再搞自定义基座,运行-制作自定义基座-制作成功-运行-运行到手机或者模拟器-选择自定义基座

制作证书在步骤1有详细提及

默认情况下uniapp是无法直接同步最新aar一起运行的只能打包,但是打包就无法便捷调试了,所以提供了自定义基座的功能,自定义基座则需要应用签名即自有证书,但每次插件更新也需要更新基座,这个得格外注意,比如插件需要优化什么细节发布了新包,基座也必须同步更新

原生插件更新后需要更新基座 (我就是在这里浪费了大量时间!!!)

6.minsdk报错

比如引入的插件是21,uniapp写的是19则会报错

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
uni-app 中集成 Android 原生插件需要进行如下步骤: 1. 在项目根目录下创建 `nativeplugins` 目录,用于存放 Android 原生插件。 2. 在 `nativeplugins` 目录中创建插件Android Studio 项目,例如插件名为 `myplugin`,则创建路径为 `nativeplugins/myplugin/android/`。 3. 在 `myplugin` 的 Android 项目中,将插件打包成 `.aar` 格式的库文件。 4. 将 `.aar` 格式的库文件放到 `myplugin` 的 `libs` 目录下。 5. 在 `myplugin` 的 `build.gradle` 文件中添加如下配置: ```gradle repositories { flatDir { dirs 'libs' } } android { ... defaultConfig { ... ndk { abiFilters "armeabi-v7a", "x86" } } ... buildTypes { release { ... proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation(name:'myplugin', ext:'aar') ... } ``` 在上述配置中,`repositories` 中的 `flatDir` 配置用于让 Gradle 知道 `.aar` 文件的位置,`implementation` 配置用于将插件库文件添加到项目中。 6. 在 uni-app 项目的 `manifest.json` 文件中,将插件添加到 `app-plus -> android -> plugins` 中。例如: ```json { "app-plus": { "android": { "plugins": { "myplugin": { "version": "1.0.0", "provider": "com.example.myplugin.MyPluginProvider" } } } } } ``` 在上述配置中,`version` 用于指定插件版本号,`provider` 用于指定插件的提供者类路径。 7. 在 uni-app 项目的 `pages.json` 文件中,将插件的页面添加到 `pages` 中。例如: ```json { "pages": [ { "path": "pages/index/index", "style": { "navigationBarTitleText": "首页" } }, { "path": "pages/myplugin/myplugin", "style": { "navigationBarTitleText": "插件页面" } } ] } ``` 在上述配置中,`path` 用于指定插件页面的路径。 8. 在 uni-app 项目中,通过 `uni.requireNativePlugin('myplugin')` 来使用插件功能。 以上是集成 Android 原生插件uni-app 的步骤和注意事项,希望对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值