【2021/12/31】uniapp之安卓原生插件开发教程

uniapp之安卓原生插件开发教程

准备

  1. hbuilderX,下载
  2. app离线SDK,下载
  3. Andorid Studio,安卓官方中文社区
  4. 证书(可以自己准备,也可以使用android Studio生成)

插件功能简介

  • 加法功能,我们把插件名称起名为leruge-add,方法是add,参数是ab

过程

  1. HbuilderX创建一个项目
    【2021/12/31】uniapp之安卓原生插件开发教程_第1张图片
  2. pages/index/index.vue中随便写一个按钮,然后调用我们的原生插件leruge-add,代码如下
    【2021/12/31】uniapp之安卓原生插件开发教程_第2张图片

    
    
    
    
    
  3. 申请Appkey,在开发者中心,点击刚才创建的app
    【2021/12/31】uniapp之安卓原生插件开发教程_第3张图片
  4. Android包名和IOS Bundled都填写成com.android.UniPlugin
  5. SHA1签名自行百度如何获取吧,这里就不错详细讲解了,教程
  6. 点击保存,生成appkey
    【2021/12/31】uniapp之安卓原生插件开发教程_第4张图片
  7. 解压我们下载好的APP离线SDK,下载地址
    【2021/12/31】uniapp之安卓原生插件开发教程_第5张图片
  8. 打开Android Studio,open选择UniPlugin-Hello-AS
    【2021/12/31】uniapp之安卓原生插件开发教程_第6张图片
    【2021/12/31】uniapp之安卓原生插件开发教程_第7张图片
  9. 我个人习惯project模式,所以切换一下
    【2021/12/31】uniapp之安卓原生插件开发教程_第8张图片
  10. 把我们刚才申请的appkey填写到app/src/main/AndroidManifest.xml中,因为开发的是安卓,所以appkey肯定也是安卓的
    【2021/12/31】uniapp之安卓原生插件开发教程_第9张图片
  11. 把我们的证书放到app目录下,我的证书名字叫leruge.keystore
    【2021/12/31】uniapp之安卓原生插件开发教程_第10张图片
  12. 配置证书,在app/build.gradlesigningConfigs选项中
    【2021/12/31】uniapp之安卓原生插件开发教程_第11张图片
  13. 右键UniPlugin-Hello-AS,创建Module
    【2021/12/31】uniapp之安卓原生插件开发教程_第12张图片
  14. 填写插件信息
    【2021/12/31】uniapp之安卓原生插件开发教程_第13张图片
  15. 配置leruge_add/build.gradle,复制例子uniplugin_module/build.gradle
    【2021/12/31】uniapp之安卓原生插件开发教程_第14张图片
  16. leruge_add/src/main/java/com/example/leruge/add创建类AddModule
    【2021/12/31】uniapp之安卓原生插件开发教程_第15张图片
  17. 实现加法,代码如下
    【2021/12/31】uniapp之安卓原生插件开发教程_第16张图片

    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);
     }
    }
  18. 注册插件,在app/src/main/assets/dcloud_uniplugins.json文件中添加,如下
    【2021/12/31】uniapp之安卓原生插件开发教程_第17张图片
  19. 到HbuilderX生成本地打包资源
    【2021/12/31】uniapp之安卓原生插件开发教程_第18张图片
  20. 把生成的本地打包资源复制到app/src/main/assets/apps目录下
    【2021/12/31】uniapp之安卓原生插件开发教程_第19张图片
    【2021/12/31】uniapp之安卓原生插件开发教程_第20张图片
  21. 配置appid,在app/src/main/assets/data/dcloud_control.xml中配置
    【2021/12/31】uniapp之安卓原生插件开发教程_第21张图片
  22. 添加插件project引用,在app/build.gradle中添加组件
    【2021/12/31】uniapp之安卓原生插件开发教程_第22张图片
  23. 测试,手机或者虚拟设备连接以后,点击运行进行测试
    【2021/12/31】uniapp之安卓原生插件开发教程_第23张图片
  24. 测试成功以后就生成uniapp插件,点击Android Studio右侧的Gradle,依次选择leruge_add/Tasks/other/assembleRelease,双击生成aar包,生成的包在leruge_add/build/outputs/aar目录下
  25. 创建跟插件相同名字的文件夹leruge_add,在leruge_add下创建android文件夹和package.json文件
  26. aar包放到android文件夹下,package.json最小配置即可,也可以按照实际情况配置
    【2021/12/31】uniapp之安卓原生插件开发教程_第24张图片

    {
     "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"
         }
     }
    }
  27. 是作为本地插件使用,还是上传到插件市场都是可以的

结束语

到此为止,安卓原生插件开发就已经完成了

留言

点击留言

你可能感兴趣的