南七星之家 发表于 2024-8-16 14:55:53

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

资源下载

JAVA环境 jdk1.8 (需要注册oracle账号)
Android Studio 下载所在:Android Studio官网 OR Android Studio中文社区
App离线SDK下载:请下载2.9.8+版本的android平台SDKhttps://img-blog.csdnimg.cn/direct/55a08b84b2cf4488b5f7ee20c02a7e3f.png
HBuilderX 下载所在:官方下载所在
导入项目

https://img-blog.csdnimg.cn/direct/92fa338cb8994e49b37a98573e7ece3b.png
直接导入下载文件里面的UniPlugin-Hello-AS项目即可
https://img-blog.csdnimg.cn/direct/8fd1a8c5476b4666a142b61c57f1d3ba.png
导入以后设置JDK为1.8,否则会编译失败https://img-blog.csdnimg.cn/direct/04cf216f0d444d8896c751b68dd13953.png
新建uniapp项目或者导入uniapp项目


[*]新建:这一步在HBuilder X中举行,新建项目,项目类型选择uni-app,模板选择默认模版即可。https://img-blog.csdnimg.cn/direct/a875f15afef44ae0b453a8440ed4806c.png
[*]导入项目,将下载的SDK的文件中的此目录导入即可
https://img-blog.csdnimg.cn/direct/6a3ab55fa49a45129e4a4fa86bacde99.png
创建证书(离线打包测试用)


[*]重新天生appidhttps://img-blog.csdnimg.cn/direct/83327709933c437eb4697f2de336139a.png
[*]创建证书


[*] 线上证书
- 服务器天生的证书绑定应用appid,即每个appid会各自天生证书
- 服务器天生的证书会主动填写证书信息,不支持自定义证书信息,有效期为100年
- 检察或下载服务器天生的证书,请登录DCloud开发者中央 https://img-blog.csdnimg.cn/direct/780deb362780454b82f031ec4e0685c3.png
[*] 自己创建,请参考Android平台署名证书(.keystore)天生指南
配置证书包名版本号等(离线打包测试用)

修改app目录下的build.gradle文件
https://img-blog.csdnimg.cn/direct/b67dfe5112d24dc8ba050a5e5a4adf85.png
配置证书信息
后台创建的证书下载下来,并获取一个绝对路径,然后对比证书详情配置参数
https://img-blog.csdnimg.cn/direct/d185aad16e7a45389b026ad816b09047.png
https://img-blog.csdnimg.cn/direct/cd909a783f9b4435b2748588cb91e485.png
获取并配置离线打包key(离线打包测试用)

官网文档
从证书详情获取到相关信息填写到离线打包key新增平台的申请表格中https://img-blog.csdnimg.cn/direct/5f15c36b9cb54e54bf932a822a9f81fa.png
提交表格以后点击创建天生离线打包key,然后配置到配置文件中https://img-blog.csdnimg.cn/direct/2dea9079a4434b8b9fdd39539e6db28b.png
创建新的uniapp插件(不带UI类型的)module类型

https://img-blog.csdnimg.cn/direct/89f0d681d9d7489dbfbbdc4876cf7a09.png
一定要选第二项,如图https://img-blog.csdnimg.cn/direct/7fcf85aeeaf440738df1be127657f0b6.png
创建完毕会报错,如下https://img-blog.csdnimg.cn/direct/1added6aad84413c9762cf24fc163b39.png


[*]解决办法,step1,去新创建的插件目录找到构建的配置文件build.gradle,去掉命名空间这一行https://img-blog.csdnimg.cn/direct/14942504321d43aaad601bf6932f1f33.png
[*]step2,去配置文件增长包名的属性值https://img-blog.csdnimg.cn/direct/a22ca672952c4ab4a3fe1d5cd87df29a.png
[*]step3,任意找一个其它插件示例的build.gradle,将文件内容覆盖到新的插件的build.gradle文件中
https://img-blog.csdnimg.cn/direct/a2ff7562e4a648f59ce309667cf27ab8.png
[*]step4 重新构建项目即可
创建插件的入口文件

新建java类,然后引入依赖UniModule
https://img-blog.csdnimg.cn/direct/2f5477f1b45f4872a17050c008c5a60a.png
添加一个add的方法,吸收a,b两个参数,返回a+b的效果https://img-blog.csdnimg.cn/direct/4455217ff2ee439aaf919088176b3b91.png
编写完成以后打包插件成aar格式

选择Gradle—>插件module—>Tasks—>build或other—>assembleRelease编译module的aar文件
https://img-blog.csdnimg.cn/direct/258c1c3ba4dd412085e8de6d31e6ffa0.png
不能显示这个构建命令的看下图
https://img-blog.csdnimg.cn/direct/f08f0f19780e4257af92984fafb25615.png
https://img-blog.csdnimg.cn/direct/597c9292e82a4f678016d3b1ecba67af.png
打包乐成以后得包路径如图https://img-blog.csdnimg.cn/direct/f12f067ac31c4cbe80493a66eb415042.png
整理文件夹级编写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"
                }
            ]
      }
    }
        ...
        ...

调试时的一个配置项https://img-blog.csdnimg.cn/direct/f6d7e0ce5981476fac65e7dfc02f2ba5.png


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 手把手教你【uniapp 原生插件开发】android