开发
- 在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())