<template><view><button @click="add">加法</button></view></template><script>export default {methods: {add() {// 引入原生插件 leruge-addlet 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.UniPluginSHA1签名自行百度如何获取吧,这里就不错详细讲解了,教程点击保存,生成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" } }}
不管作为本地插件使用,还是上传到插件市场都是可以的结束语
到此为止,安卓原生插件开发就已经完成了
