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