開發
- 在AndroidStudio裏創建library類型的module
- 下載uniapp的sdk包,https://nativesupport.dcloud.net.cn/AppDocs/download/android ,並解壓到目錄,如uniappsdk
- 在module的libs目錄放入uniapp-v8-release.aar,這個文件在uniappsdk/HBuilder-Integrate-AS/simpleDemo/libs下面,這個文件名裏的v8可能會有變化,但是總體的文件名不會變
- 在module的build.gradle裏引入配置
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
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'
compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
provided fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
}
- 創建插件類,並繼承UniModule
package com.boyuekeji.unipluginlearn;
import android.util.Log;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.common.UniModule;
public class LearnModule extends UniModule {
@UniJSMethod(uiThread = false)
public String toast() {
Log.i(Utils.LOG_TAG, "執行了toast方法");
return "這是uniplugin#toast的返回,hahaha";
}
}
- 執行gradle任務裏面的other裏的assembleRelease,來生成.arr包文件,最終生成在build/outputs/aar目錄下面
在uniapp的離線打包項目裏,引入插件包
以下所說的項目,不是上一步的插件項目,而是離線打包uniapp的項目
- 將上一步生成的.aar包放在libs目錄下
- 在src/main/assets下面創建文件dcloud_uniplugins.json文件,在這個文件裏配置上一步的插件
{
"nativePlugins": [
{
"plugins": [
{
"type": "module",
"name": "unipluginlearn",
"class": "com.boyuekeji.unipluginlearn.LearnModule"
}
]
}
]
}
上面的name可以隨便指定,這個name是需要在uniapp代碼裏進行引入的,class是插件的類的全程
- 在uniapp裏引入並使用插件
const uniplugin = uni.requireNativePlugin('unipluginlearn')
console.log('執行unilearn返回: ', uniplugin.toast())