uniapp开发android原生插件
1.下载android平台SDK开发者须知 | uni小程序SDK
2. 解压并导入UniPlugin-Hello-AS项目到android studio
https://i-blog.csdnimg.cn/blog_migrate/611da7598b9fe7166579498c89806a68.png
[*] 点击Android Studio菜单选项File--->New--->Import Project。
https://i-blog.csdnimg.cn/blog_migrate/03917e37f783b9097caf0c42d3515717.png
[*] 如果出现Android SDK路径不对问题,请在Android Studio中鼠标右键UniPlugin-Hello-AS选择Open Module Settings, 在SDK Location 中设置相关环境路径
[*]https://i-blog.csdnimg.cn/blog_migrate/509938d3710cd891c25be5d3594fbfdf.pnghttps://i-blog.csdnimg.cn/blog_migrate/6834a7de2115c20a944a5c390eab0bdc.png
3. 新建 module
https://i-blog.csdnimg.cn/blog_migrate/e455c01ca982bb70563cf0dd6d7b5b5d.pnghttps://i-blog.csdnimg.cn/blog_migrate/9eb1e53c8c9812b5e51f9864975705b1.png完成后等待加载完成
4.插件开发
(1) 将uniplugin_module的build.grade的内容复制到新建的模块的build.grade中,根据需要修改compileSdkVersion等信息。
(2)在app的build.grade中添加implementation project(':模块名')
https://i-blog.csdnimg.cn/blog_migrate/50b735251528a46bb6b32545e155752a.png
(3) 在新建的模块中新建java类extends UniModule
https://i-blog.csdnimg.cn/blog_migrate/bc8fbea90b074ea0007a1d3b0617b546.png
编写代码
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资源复制到此目次下
https://i-blog.csdnimg.cn/blog_migrate/f359bf5dfa3a8203188c6c89f9edae33.png(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>
https://i-blog.csdnimg.cn/blog_migrate/a199e1db097a9ad01aa6a07d09010ec7.png
(5)配置离线打包key
[*] 进入开发者后台:开发者中心
[*] 找到前序步骤创建的项目
[*] 点击应用名称进入应用信息
[*] 点击Android云端证书
[*] 创建证书 等待完成(约几分钟) 完成后刷新
[*] 重新进入Android云端证书界面点击下载证书
[*] 点击证书详情,点击查看证书暗码,记住暗码以及详情数据
[*] 点击各平台信息 -- 新增
[*] 将证书详情中的SHA1复制到Android 应用署名SHA1值
[*] 将证书详情中的SHA256复制到Android 应用署名SHA256
[*] 将证书详情中的MD5复制到Android 应用署名MD5
[*] 录入完成后点击提交
[*] 点击离线打包Key列的创建,弹出页面点击创建
[*] 点击离线打包Key列查看,复制Android内容
https://i-blog.csdnimg.cn/blog_migrate/0f3eb2bd8cf844d600103d50b66a4bdc.png
[*]
[*] 打开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文件
https://i-blog.csdnimg.cn/blog_migrate/7fb55ce4b9cb474d5107194ef069899e.png
[*] 修改app的build.grade 的证书配置
signingConfigs {
config {
keyAlias '证书详情中的别名'
keyPassword '步骤7中复制的暗码'
storeFile file('key/证书名称')
storePassword '步骤7中复制的暗码'
v1SigningEnabled true
v2SigningEnabled true
}
}
[*] 点击Sync Now
[*] 完成后启动项目
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]