前言
此方法為使用uniapp開發前端資源,然后繼承進安卓原生項目,達到調用uniapp調用jar的效果。
基於Android Studio進行開發。
本人不懂安卓以及gradle,只是基於搜索引擎以及官方文檔得出以下步驟,如果錯誤或改進之處,望告知。以下步驟親測可用。
項目搭建
此處可以參考官方文檔,說的很詳細了
初始項目是通過對官方demo進行裁剪獲得(個人嘗試過新建項目,未遂)
-
下載官方demo
-
導入UniPlugin-Hello-AS項目
-
刪除官方demo模塊
官方模塊總共有3個(uniplugin_component、uniplugin_module、uniplugin_richalert)
-
解除模塊綁定關系
菜單File -- Project Structure -- Modules
-
刪除模塊代碼以及uniapp示例工程源碼
-
刪除插件的注冊
參考官方說明
清空dcloud_uniplugins.json文件中nativePlugins節點下所有內容
-
刪除插件引用
app包下的build.gradle文件
// 刪除這三塊 implementation project(':uniplugin_component') implementation project(':uniplugin_module') implementation project(':uniplugin_richalert')
-
刪除混淆文件多余配置
修改app包下proguard-rules.pro文件
刪除末尾的
-keep class uni.** {*;}
-
uniapp插件開發
uniapp前端項目
-
使用Hbuilder X新建uniapp測試項目(Hbuilder下載地址)
類型選擇uni-app 默認模板
-
index.vue新增測試按鈕
<template> <view class="content"> <div> <button type="primary" @click="testSyncFunc">testSyncFunc</button> </div> </view> </template> <script> // 獲取 module var testModule = uni.requireNativePlugin("TestModule") export default { onLoad() { }, methods: { testSyncFunc() { // 調用同步方法 var ret = testModule.testSyncFunc({ 'name': 'unimp', 'age': 1 }) } } } </script>
-
打包
菜單 發行 -- 原生APP-本地打包 -- 生成本地打包app資源
到控制台輸出的導出路徑中,找到resource目錄下的文件夾(文件夾名字就是appid),后面有用
插件后端開發
-
新增Module
在Android Studio中,右擊項目名稱 -- New -- Module,選擇Android Library
-
按照官方文檔修改build.gradle以及新建UniModule(鏈接)
-
修改混淆文件
修改app包下proguard-rules.pro
dependencies標簽里添加implementation project(':xxx')
xxx就是第一步新建的Module的名字
-
引用插件
修改app包下的build.gradle
-
注冊插件
dcloud_uniplugins.json文件中nativePlugins
配置
-
生成Android平台簽名證書(鏈接)
-
生成uniapp離線打包key(參考鏈接)
Android包名在在app包下的AndroidManifest.xml中最前面可以找到,默認是com.HBuilder.UniPlugin
-
填寫APPID
app包下的AndroidManifest.xml搜索android:value
-
配置安卓證書
app包下build.gradle → signingConfigs
將第一步生成的證書文件(.keystore、.jks)放到app目錄下
-
插件調試
-
將uniapp前端項目打包生成的資源替換到app -- src -- main -- assets -- app 中
-
修改app -- src -- main -- assets -- data -- dcloud_control.xml中的appid
-
最后
-
寫了半天,還是沒有說怎么調用jar包。原生安卓項目怎么用jar就怎么用。
-
運行項目進行測試吧