1.下载android平台SDK
2. 解压并导入UniPlugin-Hello-AS项目到android studio
![]()
点击Android Studio菜单选项File--->New--->Import Project。
![]()
如果出现Android SDK路径不对问题,请在Android Studio中鼠标右键UniPlugin-Hello-AS选择Open Module Settings, 在SDK Location 中设置相关环境路径
3. 新建 module
![]()
![]()
完成后等待加载完成
4.插件开发
(1) 将uniplugin_module的build.grade的内容复制到新建的模块的build.grade中,根据需要修改compileSdkVersion等信息。
(2)在app的build.grade中添加implementation project(':模块名')
(3) 在新建的模块中新建java类extends UniModule
编写代码
package com.cn.akiplugin.test;
import android.util.Log;
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 MainModule extends UniModule{
@UniJSMethod(uiThread = false)
public void register(JSONObject options, UniJSCallback jsCallback){
Log.i("register",JSONObject.toJSONString(options));
jsCallback.invoke(new JSONObject(){{
put("code",0);
put("data",123);
}});
}
}
5. 相关配置
(1) 在app\src\main\assets\dcloud_uniplugins.json文件中增加配置 此处以moudule为例
{
"hooksClass": "",
"plugins": [
{
"type": "module",
"name": "插件名称,如:aki-test",
"class": "主类,上述代码中MainModule路径 如:com.cn.akiplugin.test.MainModule"
}
]
}
6. 插件调试
(1) 打开hbuiderx 创建一个uniapp项目编写调试代码
<!-- 为了测试方便,将index.vue 修改为nvue -->
<template>
<view class="content">
<view class="result">
{{result}}
</view>
<view class="list">
<text class="txt" @tap="registerData">注册...</text>
</view>
</view>
</template>
<script>
const akiTest = uni.requireNativePlugin("aki-test");
let that = null;
export default {
data() {
return {
title: 'Hello',
result:'result:',
plugin:null
}
},
onLoad() {
that = this;
},
onShow() {
},
methods: {
registerData(){
akiTest.register({},e=>{
that.result = "register:"+JSON.stringify(e);
uni.showToast({
title:JSON.stringify(e),
icon:"none"
})
})
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.text-area {
display: flex;
justify-content: center;
}
.result {
font-size: 36rpx;
color: #8f8f94;
width: 690rpx;
display: flex;
margin-top: 40rpx;
}
.list{
width: 750rpx;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.txt{
width: 300rpx;
height: 88rpx;
line-height: 88rpx;
border-radius: 20rpx;
text-align: center;
color: #fff;
background-color: #2D9F7E;
margin-bottom: 40rpx;
}
</style>
(2)打包:发行 ---> 原生app-本地打包 ---> 生成本地打包app资源
(3)将打包完的资源拷贝到android studio 项目目录下
进入android studio 项目\app\src\main\assets\apps目录下 删除原有
__UNI__E
文件夹将本地打包app资源复制到此目录下
![]()
(4)修改dcloud_control.xml(文件位置app\src\main\assets\data\dcloud_control.xml)
<hbuilder debug="true" syncDebug="true">
<apps>
<app appid="此处填uniapp项目的应用标识(AppID)" appver="" />
</apps>
</hbuilder>
(5)配置离线打包key
进入开发者后台:开发者中心
找到前序步骤创建的项目
点击应用名称进入应用信息
点击Android云端证书
创建证书 等待完成(约几分钟) 完成后刷新
重新进入Android云端证书界面点击下载证书
点击证书详情,点击查看证书密码,记住密码以及详情数据
点击各平台信息 -- 新增
将证书详情中的SHA1复制到Android 应用签名SHA1值
将证书详情中的SHA256复制到Android 应用签名SHA256
将证书详情中的MD5复制到Android 应用签名MD5
录入完成后点击提交
点击离线打包Key列的创建,弹出页面点击创建
点击离线打包Key列查看,复制Android内容
打开Android项目的AndroidManifest,xml 文件修改如下两处
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="此处填写开发者后台创建的包名/appid/域名"> <meta-data android:name="dcloud_appkey" android:value="此处填写上述的AppKey" />在app下新建目录key,将6中下载的证书复制到此文件夹
修改项目项目包名app的build.grade文件
修改app的build.grade 的证书配置
signingConfigs { config { keyAlias '证书详情中的别名' keyPassword '步骤7中复制的密码' storeFile file('key/证书名称') storePassword '步骤7中复制的密码' v1SigningEnabled true v2SigningEnabled true } }点击Sync Now
完成后启动项目