Uniapp使用大疆SDK打包离线原生插件

前言:本文只介绍uniapp原生插件开发流程,阅读本文者需具备基本的java,android,以及uniapp开发知识。

准备:

Uniapp原生插件开发SDK文件

一、解压

解压后相关文件如下图,我们只需要用到里面的示例工程HBuilder-HelloUniApp来进行插件开发就好

二、示例工程导入

打开Android Studio,导入上边标出的工程

1.插件开发--Module 创建--选择新建 Module

2.文件配置:

build.gradle文件打开

将编辑器文件视图切换到Project,选择我们刚创建的Module目录,然后打开其根目录下的build.gradle文件

注意,后边会显示是哪个的,这里选我们刚才新建的rfid的build.gradle

build.gradle文件配置

加入以下配置,dependencies里面的初始配置可以删除或注释掉,然后点击同步

复制代码
android {
    sourceSets {
        main(){
            jniLibs.srcDirs = ["libs"]
        }
    }
}
 
//导入aar需要的配置
repositories {
    flatDir {
        dirs 'libs'
    }
}
 
dependencies {
    //必须添加的依赖
    compileOnly 'androidx.recyclerview:recyclerview:1.0.0'
    compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'
    compileOnly 'androidx.appcompat:appcompat:1.0.0'
    compileOnly 'com.alibaba:fastjson:1.1.46.android'
 
    compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
}

3.创建Module类

新建类文件

在Module的项目文件夹下创建我们需要的类 这里我新建了RFIDTool,必须继承UniModule

扩展方法必须加上@UniJSMethod (uiThread = false or true) 注解。UniApp 会根据注解来判断当前方法是否要运行在 UI 线程,和当前方法是否是扩展方法。

UniApp是根据反射来进行调用 Module 扩展方法,所以Module中的扩展方法必须是 public 类型

复制代码
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
 
public class RFIDTool extends UniModule {
 
 
    @UniJSMethod(uiThread = true)
    public void doTest(UniJSCallback callback){
        try {
            String result = "doTest success" ;
            callback.invoke(result);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

4.数据返回

数据使用UniJSCallback结果回调,具体是使用invoke调用JavaScript的回调方法返回数据。更多可以参考官方文档,invoke需要传入一个Object类型的返回数据,:

引入插件

在插件项目app目录下的build.gradle文件中,引入刚刚注册的module

5.离线打包Key

sha1值获取

在证书管理页面,证书详情里面获取证书sha1值

从Android项目中获取包名

获取离线打包key

在uniapp应用后台各平台信息页面,将上两步获取的值填入对应输入框,然后点击保存

三、开始编译

打开Android Studio,在插件项目中,打开右上角Gradle栏目,选择插件开发项目,选择插件打开,依次点开Tasks-other,然后双击assembleRelease即可进行插件编译。

1.获取插件

编译成功后,就可以在插件目录的build/outputs/arr目录下找到编译好的插件

2.引入插件--创建目录

在uniapp项目中创建nativeplugins目录,然后根据插件名创建插件目录,再在其下一级创建插件相应系统目录,然后将插件复制到该目录

四、引入插件

在uniapp项目的manifest.json文件中添加配置好的插件,至此引入完成

相关推荐
2501_916007471 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
2501_916007471 天前
深入理解HTTPS对称与非对称加密机制及Charles抓包实践
网络协议·http·ios·小程序·https·uni-app·iphone
小徐_23331 天前
AI 写 wot-ui 总在猜 API?我们把 Skills、MCP 和 CLI 都配好了
前端·uni-app·ai编程
Liu.7741 天前
uni-app 组件 uni-easyinput 常见 Bug 及解决方案
uni-app·bug
小徐_23332 天前
uni-app 项目别再从零搭了!3 个 Wot UI 起手模板怎么选?
前端·uni-app
蜡台2 天前
uniapp pdf文件预览组件
pdf·uni-app·合同·pdfh5
凡泰AI2 天前
如何借助MCP打通企业APP内部服务:从统一调用到小程序承接
小程序·uni-app·app·mpaas·mcp·小程序容器
华玥作者2 天前
uniapp 万条数据不卡顿:我写了个虚拟列表组件 hy-list,原生支持瀑布流
数据结构·uni-app·list·vue3
这是个栗子2 天前
uni-app 微信小程序开发:常用函数总结(一)
微信小程序·小程序·uni-app·getcurrentpages
宠友信息4 天前
消息序号如何保证即时通讯源码聊天记录稳定加载
java·spring boot·redis·python·mysql·uni-app