uniapp开发原生module插件
准备
-
jdk1.8及以上
-
android studio 以下统称 ide
-
官方sdk
-
HBuilderx
开发
- ide创建一个No Activity
- 创建一个Module选择Android Library
- 导入官方sdk 作为参考
- 改变module build.gradle 的dependencies
- app添加uniapp-release.arr 插件 放在app->libs下,并且改变module build.gradle 并且syn now
- 在module 创建一个类 继承WXModule
写代码
-
TestModule
-
public class TestModule extends WXModule { String NAME = "name"; String AGE = "name" ; @JSMethod(uiThread = true) public void testText(JSONObject options, JSCallback callback) throws JSONException { Log.e("TestModule","成功调用"); String name = options.getString(NAME); String age = options.getString(AGE); JSONObject data = new JSONObject(); if(name != null && !name.isEmpty() && age !=null && !age.isEmpty()){ int _age = Integer.parseInt(age); if(_age < 0 || _age > 30){ data.put("code","不合格!"); }else{ age = (_age >0 && _age < 10) ? "0"+age : age; data.put("code","合格:"+"姓名"+name+"年龄"+age); } }else { data.put("code","输入无效"); } callback.invoke(data); } }
-
注册这个类
-
在app src main assets 导入官方的dcloud_uniplugins.json 将包名和方法写上去,并且删掉多余的然后开始打包
打包插件并且使用
- Gradle>testplugin>Tasks>other目录下找到assembleRelease 导出 arr文件
- 在module>build>outputs找到arr文件,并且放入uniapp项目指定的位置
- 然后选择制作自定义调试基座 证书随便找个网站生成安卓证书在线制作工具 (applicationloader.net)
- 然后用选择自定义调试,真机调试
android studio 调试出现key 未配置
- 删除原来的项目里面的assets>apps.xxxx.www文件和data>dcloud_control.xml里面的appid值
- HB创建一个项目,然后本地打包将打包文件替换那个删除文件,并且将appid 添加上去
- android studio 选择build>Generate signed Bundle or APK 选择apk。点击create new
- 文件目录放在项目下面并且跟test.jks同一级。并且keystore 为后缀 。别名和密码是关键。其他无所谓
- 然后更改build.gradle 配置文件 别名和密码和文件名要一一对应。
- 用最右边的gradle生成sha1密钥,看一下名字是否对应的上
- 然后进入HB后台管理,将build.gradle包名和获取sha1密钥写上去得到key,替换项目里面AndroidManifest.xml里面的meta-data标签里面的android:value