文章目錄
- 記錄下uni原生插件開發流程
- 一、準備開發環境
- 二、開發除錯插件
- 一、匯入專案
- 一、創建插件Library
- 三、創建uni專案
- 三、除錯插件
- 三、打包為本地插件
- 四、除錯本地插件
- 五、發布本地插件到插件市場
記錄下uni原生插件開發流程
看官方檔案看的有點頭蒙 特此記錄下
作為長期伸手黨的我深知你們喜歡的是什么

OK先上原始碼鏈接
Hbuilder X打開 UniToast
AndroidStudio打開UniPlugin-Hello-AS
注意此專案使用的是uni Android-SDK@2.9.8.80513_20201111
參考文章
官方檔案鏈接
一、準備開發環境
- JAVA環境 jdk1.8
- Android Studio
- App離線SDK下載:請下載2.9.8+版本的android平臺SDK
- 官網SDK解壓后如下圖

二、開發除錯插件
一、匯入專案
- 匯入uni插件原生專案 UniPlugin-Hello-AS工程請在App離線SDK中查找
- 點擊Android Studio選單選項File—>New—>Import Project,

- 匯入以后目錄結構如下

- 升級專案為androidx 點擊等待即可


一、創建插件Library
- 因為uni的toast有字符長度限制 下面用一個最簡單的呼叫原生Toast的方式

選擇Android Library

輸入 Library名稱toastplus 點擊finish
然后在app目錄下的build.gradle下引入 toastplus

將app libs目錄下的 uniapp-v8-release.aar包(名字可能不一樣)復制到 toastplus libs下
然后修改modle toastplus中的build.gradle檔案 引入aar包 點擊右上角同步即可

然后在modle目錄下創建ToastPlus類集成UniMoudle

ToastPlus代碼如下
public class ToastPlus extends UniModule {
JSCallback jsCallback;
String path = "";
/**
* 簡單回呼示例
* 傳入一個String型別 處理并回傳
*/
@JSMethod(uiThread = true)
public void processData(String data, JSCallback jsCallback) {
this.jsCallback = jsCallback;
if (mWXSDKInstance != null && mWXSDKInstance.getContext() instanceof Activity) {
path = data + "+(處理完成)";
//回傳處理結果 進行回呼
jsCallback.invoke(path);
}
}
/**
* 呼叫原生Toast顯示傳入內容
*/
@JSMethod(uiThread = true)
public void showToast(String message) {
if (mWXSDKInstance != null && mWXSDKInstance.getContext() instanceof Activity) {
Toast.makeText(mWXSDKInstance.getContext(), message, Toast.LENGTH_SHORT).show();
}
}
}
- 在app/dcloud_uniplugins.json檔案中添加插件資訊

name為uni呼叫原生插件的名稱 class為絕對路徑
三、創建uni專案
打開HBuilderX,務必保證使用最新uniapp安卓原生SDK以及HBuilderX最新版本
新建uniapp專案 并修改index代碼

index.vue代碼如下
<template>
<view class="content">
<view class="button1">
<button @click="showToast(message)">點擊顯示原生Toast</button>
</view>
<view class="button2">
<button @click="processData(waitprocessdata)">回呼的使用</button>
</view>
</view>
</template>
<script>
const ToastPlusModule = uni.requireNativePlugin("toastplus")
export default {
data() {
return {
message: '我是一條很長的Toast我是一條很長的Toast',
waitprocessdata: '我是待處理的資料'
}
},
onLoad() {
},
methods: {
showToast(message) {
ToastPlusModule.showToast(message)
},
processData(data) {
ToastPlusModule.processData(data, processokdata => {
ToastPlusModule.showToast(processokdata)
})
}
}
}
</script>
<style>
.button1 {
display: flex;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
flex-direction: column;
align-items: center;
justify-content: center;
}
.button2 {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-top: 100rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
</style>
三、除錯插件
點擊本地資源打包

控制臺會輸出路徑

復制**__UNI__904803F** 檔案夾到AndroidStudio
app/src/main/assets/apps/目錄下 并修改
dcloud_control.xml中的appid欄位

點擊運行即可除錯插件
運行結果


如果你可以成功運行 恭喜你 uni的原生插件你已經開發完成了
下面講一下如何打包為提交市場需要的zip包
三、打包為本地插件
- 在本地創建一個檔案夾 名稱可以命名為你的uni賬戶名-插件名稱
如
我們先來編輯這個pakege.json檔案

代碼如下
{
"name": "ToastPlus",
"id": "AndroidLMY-ToastPlus",
"version": "1.0.0",
"description": "原生Toast",
"_dp_type":"nativeplugin",
"_dp_nativeplugin":{
"android": {
"plugins": [
{
"type": "module",
"name":"ToastPlus",
"class": "com.lmy.toastplus.ToastPlus"
}
],
"integrateType": "aar"
}
}
}
然后打包插件的aar包
androidstudio選中右側gradle選中圖中選項點擊即可

aar包輸入路徑為

復制aar包到android目錄下
四、除錯本地插件
我們在打包為zip壓縮包之前首先測驗插件的可用性
打開uni專案
將整理好的檔案夾放入nativeplugins檔案夾下(沒有創建即可)

然后修改index.vue
然后配置本地插件

最后點擊發行云打包
配置簽名檔案即可 然后點擊打包

打包完成以后控制臺會有輸出下載地址 點擊下載安裝進行測驗即可

五、發布本地插件到插件市場
如果測驗沒有問題就可以吧整理的檔案夾進行zip壓縮準備提交市場了

最后填寫完以后點擊發布等待審核即可
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/236148.html
標籤:其他
