uniapp Android 原生插件

1、

2、

  • 解压sdk后 导入uniSDK中的UniPlugin-Hello-AS项目
  • 自动下载gradle 和 ndk (project模式下  根目录 build.gradle 可能需要修改maven库地址,百度一下)

3、Android模式下,右键app  new  module  选择 Android Library  ->  Module name 输入个人前缀(mrt_firstModule)  -> Package name -> edit ->done -> 选择java-> finish

4、Android模式下, Gradle Scripts -> 文件的所有内容复制到自建的  mrt_firstModule  中  //implementation 'xxx:xxx:1.0.0' //添加依赖包

5、右键 mrt_firstModule -> new -> Java Class ->  testModule (Class) 

 

6、  

 

{
"nativePlugins": [
{
"plugins": [
{
"type": "module",
"name": "TestModule",
"class": "io.dcloud.uniplugin.TestModule"
}
]
},
{
"plugins": [
{
"type": "component",
"name": "myText",
"class": "io.dcloud.uniplugin.TestText"
}
]
},
{
"hooksClass": "",
"plugins": [
{
"type": "module",
"name": "DCloud-RichAlert",
"class": "uni.dcloud.io.uniplugin_richalert.RichAlertModule"
}
]
},
{
"plugins": [
{
"type": "module",
"name": "mrt_firstModule",
"class": "com.example.mrt_firstmodule.testModule" //粘贴
}]
}
]
}

 

implementation project(':mrt_firstModule')

 回到 testModule 中

package com.example.mrt_firstmodule;

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 testModule extends UniModule {
/*
JS中調用方法
module.add({

},callback)
*/
@UniJSMethod
public void add(JSONObject json, UniJSCallback callback){
final int a = json.getIntValue("a");
final int b = json.getIntValue("b");
callback.invoke(new JSONObject(){{
put("code",0);
put("result",a+b);
}});
}
}

 

 7、

 

添加插件调试 debug='true' syncDebug='true'

<hbuilder debug='true' syncDebug='true'>

<apps>
    <app appid="__UNI__B2A5BFD" appver=""/>
</apps>
</hbuilder>

 

8、新建离线文件(hbuilderX)

<template>
<view class="content">
<button type="default" @tap="testadd">ADD FUN</button>
</view>
</template>

<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {

},
methods: {
testadd() {
const uniModule = uni.requireNativePlugin('mrt_firstModule');
uniModule.add({
a: 1,
b: 2
}, res => {
uni.showToast({
title:JSON.stringify(res)
})
})
}
}
}
</script>

 生成离线文件后复制到Android Studio中 的 assets中

 

 

 

 

登录 https://dev.dcloud.net.cn/  选择刚刚创建的uniapp项目,配置 Android 包名  和  Android 证书签名SHA1

 

 

 

Android Studio 4.2 中 Tasks 隐藏了,需要在

 

 

 

连接手机  运行app查看  调试一下

 

 

 

 连接成功

 

9、双击打包 

 

打包完成后  mrt_firstModule\build\outputs\aar  复制   mrt_firstModule-release.aar 到HbuilderX中的项目中   mrt_firstModule命名一定不能错

 

 

 云打包。下载安装即可

https://gitee.com/yyy090320_admin/uni-plugins

 

posted @ 2021-06-10 10:08  mrt_yy  阅读(1324)  评论(0编辑  收藏  举报