uniapp之安卓原生插件开发教程
准备
插件功能简介
- 加法功能,我们把插件名称起名为
leruge-add
,方法是add
,参数是a
和b
过程
- HbuilderX创建一个项目
在
pages/index/index.vue
中随便写一个按钮,然后调用我们的原生插件leruge-add
,代码如下<template> <view> <button @click="add">加法</button> </view> </template> <script> export default { methods: { add() { // 引入原生插件 leruge-add let lerugeAdd = uni.requireNativePlugin("leruge-add") // 调用 lerugeAdd.add({ a: 1, b: 2 }, res => { uni.showToast({ title: JSON.stringify(res), icon: 'none' }) }) } } } </script> <style> </style>
- 申请Appkey,在开发者中心,点击刚才创建的app
- Android包名和IOS Bundled都填写成
com.android.UniPlugin
- SHA1签名自行百度如何获取吧,这里就不错详细讲解了,教程
- 点击保存,生成appkey
- 解压我们下载好的APP离线SDK,下载地址
- 打开Android Studio,open选择
UniPlugin-Hello-AS
- 我个人习惯project模式,所以切换一下
- 把我们刚才申请的appkey填写到
app/src/main/AndroidManifest.xml
中,因为开发的是安卓,所以appkey肯定也是安卓的 - 把我们的证书放到app目录下,我的证书名字叫
leruge.keystore
- 配置证书,在
app/build.gradle
的signingConfigs
选项中 - 右键
UniPlugin-Hello-AS
,创建Module
- 填写插件信息
- 配置
leruge_add/build.gradle
,复制例子uniplugin_module/build.gradle
- 在
leruge_add/src/main/java/com/example/leruge/add
创建类AddModule
实现加法,代码如下
package com.example.leruge.add; import com.alibaba.fastjson.JSONObject; import io.dcloud.feature.uniapp.annotation.UniJSMethod; import io.dcloud.feature.uniapp.bridge.UniJSCallback; import io.dcloud.feature.uniapp.common.UniModule; public class AddModule extends UniModule { @UniJSMethod public void add(JSONObject json, UniJSCallback callback) { int a = json.getIntValue("a"); int b = json.getIntValue("b"); JSONObject res = new JSONObject(); res.put("code", 1); res.put("result", a + b); callback.invoke(res); } }
- 注册插件,在
app/src/main/assets/dcloud_uniplugins.json
文件中添加,如下 - 到HbuilderX生成本地打包资源
- 把生成的本地打包资源复制到
app/src/main/assets/apps
目录下 - 配置appid,在
app/src/main/assets/data/dcloud_control.xml
中配置 - 添加插件project引用,在
app/build.gradle
中添加组件 - 测试,手机或者虚拟设备连接以后,点击运行进行测试
- 测试成功以后就生成uniapp插件,点击Android Studio右侧的
Gradle
,依次选择leruge_add/Tasks/other/assembleRelease
,双击生成aar
包,生成的包在leruge_add/build/outputs/aar
目录下 - 创建跟插件相同名字的文件夹
leruge_add
,在leruge_add
下创建android
文件夹和package.json
文件 aar包放到
android
文件夹下,package.json
最小配置即可,也可以按照实际情况配置{ "name": "leruge-add", "id": "leruge-add", "version": "1.0.1", "description": "加法", "_dp_type":"nativeplugin", "_dp_nativeplugin":{ "android": { "plugins": [ { "type": "module", "name": "lerug-add", "class": "com.example.leruge.add.AddModule" } ], "integrateType": "aar" } } }
- 是作为本地插件使用,还是上传到插件市场都是可以的
结束语
到此为止,安卓原生插件开发就已经完成了
留言
点击留言
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。