手把手教你【uniapp 原生插件开发】android

资源下载

uniapp插件开发官方教程--https://nativesupport.dcloud.net.cn/NativePlugin/

JAVA环境 jdk1.8 (需要注册oracle账号
Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
App离线SDK下载请下载2.9.8+版本的android平台SDKSDK说明

HBuilderX 下载地址:官方下载地址

导入项目

导入项目
直接导入下载文件里面的UniPlugin-Hello-AS项目即可
在这里插入图片描述
导入以后设置JDK为1.8,否则会编译失败在这里插入图片描述

新建uniapp项目或者导入uniapp项目

  1. 新建:这一步在HBuilder X中进行,新建项目,项目类型选择uni-app,模板选择默认模版即可。在这里插入图片描述
  2. 导入项目,将下载的SDK的文件中的此目录导入即可
    在这里插入图片描述

创建证书(离线打包测试用)

  1. 重新生成appid在这里插入图片描述
  2. 创建证书
  • 线上证书
    - 服务器生成的证书绑定应用appid,即每个appid会各自生成证书
    - 服务器生成的证书会自动填写证书信息,不支持自定义证书信息,有效期为100年
    - 查看或下载服务器生成的证书,请登录DCloud开发者中心 在这里插入图片描述
  • 自己创建,请参考Android平台签名证书(.keystore)生成指南

配置证书包名版本号等(离线打包测试用)

修改app目录下的build.gradle文件
在这里插入图片描述
配置证书信息
后台创建的证书下载下来,并获取一个绝对路径,然后对比证书详情配置参数
在这里插入图片描述
在这里插入图片描述

获取并配置离线打包key(离线打包测试用)

官网文档
从证书详情获取到相关信息填写到离线打包key新增平台的申请表格中在这里插入图片描述
提交表格以后点击创建生成离线打包key,然后配置到配置文件中在这里插入图片描述

创建新的uniapp插件(不带UI类型的)module类型

在这里插入图片描述
一定要选第二项,如图在这里插入图片描述
创建完毕会报错,如下在这里插入图片描述

  • 解决办法,step1,去新创建的插件目录找到构建的配置文件build.gradle,去掉命名空间这一行在这里插入图片描述
  • step2,去配置文件增加包名的属性值在这里插入图片描述
  • step3,随便找一个其它插件示例的build.gradle,将文件内容覆盖到新的插件的build.gradle文件中
    在这里插入图片描述
  • step4 重新构建项目即可

创建插件的入口文件

新建java类,然后引入依赖UniModule
在这里插入图片描述
添加一个add的方法,接收a,b两个参数,返回a+b的结果在这里插入图片描述

编写完成以后打包插件成aar格式

选择Gradle—>插件module—>Tasks—>build或other—>assembleRelease编译module的aar文件
在这里插入图片描述
不能显示这个构建命令的看下图
在这里插入图片描述
在这里插入图片描述
打包成功以后得包路径如图在这里插入图片描述

整理文件夹级编写json文件

一级目录以插件id命名,对应package.json中的id字段! 存放android文件夹和package.json文件

{
    "name": "插件名称",
    "id": "DCloud-RichAlert", // 插件标识
    "version": "插件版本号",
    "description": "插件描述信息",
    "_dp_type":"nativeplugin",
    "_dp_nativeplugin":{
        "android": {
            "plugins": [
                {
                    "type": "module",
                    "name": "DCloud-RichAlert_TestModule", //id为前缀
                    "class": "uni.dcloud.io.uniplugin_richalert.TestModule"
                },
                {
                    "type": "component",
                    "name": "DCloud-RichAlert_TestComponent",
                    "class": "uni.dcloud.io.uniplugin_richalert.TestComponent"
                }
            ]
        }
    }
	...
	...

调试时的一个配置项在这里插入图片描述

THE END