锦通 发表于 2024-11-20 17:56:00

uniapp—android原生插件开发(4uniapp引用aar插件)

本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求!

一、将android程序打包成aar插件包



[*]直接使用Terminal下令窗口打包

[*]chmod +x ./gradlew                             授权目次
[*]./gradlew clean                                    清理构建文件
[*]./gradlew assembleRelease                打包成正式包
https://i-blog.csdnimg.cn/direct/643b8622e6a64802a76871adb665ddc4.png



[*]查看打包文件
https://i-blog.csdnimg.cn/direct/fb582731ad8a40ee8385a6c40ff62916.png



二、uniapp引用aar原生插件包(暴露的模块名为RfidModule)





[*]在uniapp中新增相干目次结构,按照规范引用相干文件和依赖,并配置相干配置(要与android项目标中的dcloud_uniplugins.json配置一致)
https://i-blog.csdnimg.cn/direct/6a8551899fec429db6ba26240e7bdc05.png
https://i-blog.csdnimg.cn/direct/5c3f3315b98f4e33885a5c19770de750.png


[*]uniapp>manifest.json添加App原生插件配置
https://i-blog.csdnimg.cn/direct/3420045954fb4b249030c7e511417555.png

三、测试页面调用方法



[*]使用方式:
        const rfidModule = uni.requireNativePlugin('RfidModule');
<template>
        <view class="content">
                <image class="logo" src="/static/logo.png"></image>
                <view class="text-area">
                        <button @click="add">测试添加方法</button>
                        <button @click="connect">初始化并连接设备</button>
                        <button @click="startInventory">启动盘点</button>
                        <button @click="readTagData">读取标签数据</button>
                        <button @click="writeTagDataToEPC">写入标签数据</button>
                        <button @click="stopInventory">停止盘点</button>
                        <button @click="disconnect">断开连接</button>
                </view>
        </view>
</template>

<script>
        const rfidModule = uni.requireNativePlugin('RfidModule');
        console.log(rfidModule);
        export default {
                data() {
                        return {
                                title: 'Hello'
                        }
                },
                onLoad() {

                },
                methods: {
                        // 测试添加方法
                        add() {
                                rfidModule.add({
                                        a: 1, b: 3
                                }, e => {
                                        uni.showToast({
                                                title: "add测试方法=====" + JSON.stringify(e),
                                                icon: 'none'
                                        })
                                })
                                // let rtn = rfidModule.add({
                                //         a: 1,
                                //         b: 3
                                // });
                                // console.log(rtn);
                                // uni.showToast({
                                //         title: "add测试方法=====" + JSON.stringify(rtn),
                                //         icon: 'none'
                                // })
                        },

                        // 初始化并连接设备
                        connect() {
                                rfidModule.initialize();
                                let rtn = rfidModule.connect();
                                uni.showToast({
                                        title: "初始化并连接设备=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        },

                        // 启动盘点
                        startInventory() {
                                let rtn = rfidModule.startInventory()
                                uni.showToast({
                                        title: "启动盘点=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        },

                        // 读取标签数据
                        readTagData() {
                                let rtn = rfidModule.readTagData(2, 0, 2, "00000001");
                                uni.showToast({
                                        title: "读取标签数据=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        },

                        // 写入标签数据
                        writeTagDataToEPC() {
                                let rtn = rfidModule.writeTagDataToEPC("dataToWrite", "00000001");
                                uni.showToast({
                                        title: "写入标签数据=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        },

                        // 停止盘点
                        stopInventory() {
                                let rtn = rfidModule.stopInventory();
                                uni.showToast({
                                        title: "停止盘点=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        },

                        // 断开连接
                        disconnect() {
                                let rtn = rfidModule.disconnect()
                                uni.showToast({
                                        title: "断开连接=====" + JSON.stringify(rtn),
                                        icon: 'none'
                                })
                        }
                }

        }
</script>
四、制作自界说调试基座

https://i-blog.csdnimg.cn/direct/8dc8e8eb5e1641d7bf39940a1af864f7.png
https://i-blog.csdnimg.cn/direct/217b861335584b809a4995f2831ecdd3.png

五、uniapp真机调试自界说原生插件



[*]使用自界说基座运行到真机上(非真机上无法调试自界说插件)
https://i-blog.csdnimg.cn/direct/3948482ed0db4ffea1983e650a1a1ef5.png


[*]运行结果
https://i-blog.csdnimg.cn/direct/e000fb949ee540ccafc4bc4332a2ba6c.jpeg
此时,流程跑通了,后续根据本身的业务开发即可。

踩坑不轻易,假如对你有帮助,麻烦点个赞或收藏一下,谢谢!!!
快速通道:
uniapp—android原生插件开发(1环境准备)
uniapp—android原生插件开发(2原生插件开发)
uniapp—android原生插件开发(3Android真机调试)
uniapp—android原生插件开发(4uniapp引用aar插件)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: uniapp—android原生插件开发(4uniapp引用aar插件)