Uniapp中怎么開發(fā)安卓原生插件?下面uniapp教程欄目給大家介紹一下Uniapp安卓原生插件開發(fā)的方法,希望對大家有所幫助!
Android
環(huán)境準備
l JAVA環(huán)境 jdk1.8
l Android Studio 下載地址:Android Studio官網(wǎng) OR Android Studio中文社區(qū)
l App離線SDK下載:請下載2.9.8+版本的android平臺SDK
導入uni插件原生項目
l UniPlugin-Hello-AS工程請在App離線SDK中查找
l 點擊Android Studio菜單選項File—>New—>Import ProjectApp離線SDK下
插件開發(fā)
uni-app插件目前僅支持Module擴展和Component擴展,暫時不支持Adapter擴展,下面介紹的是Module擴展(非UI的功能擴展)
1、新建Module,F(xiàn)ile->New->New Module,選擇Android Library,填寫信息,點擊Finish
2、編輯新建Module的build.gradle文件,添加依賴,使Module具有開發(fā)uniapp插件能力
移除默認依賴,修改為 compileOnly fileTree(dir: 'libs', include: ['*.jar']) compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar']) compileOnly "com.android.support:recyclerview-v7:28.0.0" compileOnly "com.android.support:support-v4:28.0.0" compileOnly "com.android.support:appcompat-v7:28.0.0" compileOnly 'com.alibaba:fastjson:1.1.46.android' implementation 'com.facebook.fresco:fresco:1.13.0'
3、編寫邏輯,在自己的module中新建一個java類,用于編寫自己的代碼邏輯
4、代碼實現(xiàn)
-
-
我們實現(xiàn)的是一個Module,需要繼承uni的UniModule
-
擴展方法必須加上@UniJSMethod (uiThread = false or true) 注解,判斷是否需要運行在UI線程,默認true,擴展方法必須public,便于通過uni內(nèi)部調(diào)用
-
-
-
第一個參數(shù)為傳入的參數(shù),結(jié)構(gòu)為json,通過key獲取需要的參數(shù),第二個是回調(diào)函數(shù),用于返回給前臺頁面需要的結(jié)果
-
如果需要用到其他權限,需要進行在AndroidManifest.xml文件進行申請,例如日歷的讀取和寫入
-
-
編輯UniPlugin-Hello-AS工程下 “app” Module根目錄assets/dcloud_uniplugins.json文件,在nativePlugins節(jié)點下進行注冊,type:module,name填寫自己需要暴露的組件名稱,class填寫方法的具體路徑,包名+類名
dcloud_uniplugins.json說明:
nativePlugins: 插件根節(jié)點,可存放多個插件 hooksClass: 生命周期代理(實現(xiàn)AppHookProxy接口類)格式(完整包名加類名) type : module 或 component類型 name : 注冊名稱 class : module 或 component 實體類完整名稱
- 在app的build.gradle注冊自己的組件,名字就是新建的module的名稱,注冊時候,就可以在android studio中使用了
到此為止代碼開發(fā)就結(jié)束了,接下來就是用android studio進行打離線包的驗證,傳送門nativesupport.dcloud.net.cn/AppDocs/use…
打包驗證
- Hbuildx新建一個項目,通過uni.requireNativePlugin進行插件調(diào)用
- 當前uniapp的相關打包資料需要準備好,這邊就不在贅述,AppKey,APPID和安卓包名都需要在android studio中進行對應的配置,還有安卓證書別名以及秘鑰等
- 點擊發(fā)行->本地打包->生成本地打包的App資源
- 將生成的文件復制粘貼到UniPlugin-Hello-ASappsrcmainassetsapps下,并且修改dcloud_control.xml文件的appid
- 安卓打包參數(shù)配置,包名,證書別名等(圖1),證書文件需要放在app下(圖2)AndroidManifest.xml配置包名和AppKey,就是上面第二步的AppKey
- 連接手機,打開USB調(diào)試,點擊運行
Uniapp 打包
插件生成
編譯生成module的aar文件:選擇Gradle—>插件module—>Tasks—>other—>assembleRelease(運行生成module的aar文件)
HBuildX引入該插件
- 項目根目錄新建nativeplugins–>插件名稱->android->插件aar文件,android下面同步存放package.json(詳細介紹)
Tips:插件id必須和文件夾的名稱一致
- 打開manifest.json,配置原生插件
- 云打包進行插件功能驗證
IOS
第一步先買個Mac