好用网站推荐免费,品牌设计是做什么,职业培训机构管理系统,百度广告联盟平台一、下载原生开发SDK Android 离线SDK - 正式版 | uni小程序SDK (dcloud.net.cn)、 https://nativesupport.dcloud.net.cn/AppDocs/download/android.html 将开发uniappa原生android的插件解压到ben本地目录#xff0c;目录结构如下#xff1a; 接下就可以使用 UniPlugin-Hel…一、下载原生开发SDK Android 离线SDK - 正式版 | uni小程序SDK (dcloud.net.cn)、 https://nativesupport.dcloud.net.cn/AppDocs/download/android.html 将开发uniappa原生android的插件解压到ben本地目录目录结构如下 接下就可以使用 UniPlugin-Hello-AS这个工程制作原生插件
二、制作原生插件
1、androidstudio打开UniPlugin-Hello-AS 调整好本地androidsdk和gradle环境进行下一步
2、创建一个library的module 3、配置gradle依赖 将uniplugin_modle模块下的gradle依赖全部拷贝到新建的mylibrary的gradle中 compileOnly fileTree(dir: libs, include: [*.jar])compileOnly fileTree(dir: ../app/libs, include: [uniapp-v8-release.aar])compileOnly androidx.recyclerview:recyclerview:1.0.0compileOnly androidx.legacy:legacy-support-v4:1.0.0compileOnly androidx.appcompat:appcompat:1.0.0implementation com.alibaba:fastjson:1.2.83implementation com.facebook.fresco:fresco:1.13.0
4、编写android代码
/*** 提供给uni的js调用的类需要继承 io.dcloud.feature.uniapp.common.UniModule
* 这里定义的java类名就是后面uniapp调用的插件名称
*/
public class MyLibraryPlugin extends UniModule {/*** 暴露一个给js调用的方法* UniJSMethod注解标记是否需要主线程调用* return*/UniJSMethod(uiThread false)public String getTimeFromNative(){SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss, Locale.CHINA);return get time from native sdf.format(new Date());}}5、打包aar文件 进入到工程的根目录执行assembleRelease命令 ./gradlew mylibrary:assembleRelease在build-outputs-aar提取aar文件 这样就生成了一个名为mylibrary-release.aar的插件
6、编写插件打包配置package.json
{ name: MyLibraryPlugin, id: MyLibraryPlugin, version: 1.0, description: uniapp原生android插件, _dp_type:nativeplugin, _dp_nativeplugin:{ android: { plugins: [ { type: module,name: SunMiUtilsService,class: com.example.mylibrary.MyLibraryPlugin}], integrateType: aar, minSdkVersion: 21 } }
} 这样package.json文件就配置好了
三、uniapp集成插件 1、导入原生插件 在uniapp项目目录下创建一个名为nativeplugins的文件夹在nativeplugins目录下创建目录以插件名称MyLibraryPlugin命名在MyLibraryPlugin插件目录下创建一个android目录将mylibrary-release.aar插件拷贝进去在android的统计目录中奖package.json文件拷贝进去整体目录结构如下 2、在manifest.json中配置插件 3、测试代码
methods: {clickNative(){const libPlugin uni.requireNativePlugin(MyLibraryPlugin);uni.showModal({title:提示,content: libPlugin.getTimeFromNative(),})},
} 注意新引入插件一定要重新对自定义基座进行打包不然插件引入会失效