当前位置: 首页 > article >正文

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

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

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

  • 直接使用Terminal命令窗口打包
  1. chmod +x ./gradlew                             授权目录
  2. ./gradlew clean                                    清理构建文件
  3. ./gradlew assembleRelease                打包成正式包

  • 查看打包文件

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

  • 在uniapp中新增相关目录结构,按照规范引用相关文件和依赖,并配置相关配置(要与android项目的中的dcloud_uniplugins.json配置一致)

  • uniapp>manifest.json添加App原生插件配置

三、测试页面调用方法

  • 使用方式:

        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>

四、制作自定义调试基座

五、uniapp真机调试自定义原生插件

  • 使用自定义基座运行到真机上(非真机上无法调试自定义插件

  • 运行效果

此时,流程跑通了,后续根据自己的业务开发即可。

踩坑不容易,如果对你有帮助,麻烦点个赞或收藏一下,谢谢!!!

快速通道

uniapp—android原生插件开发(1环境准备)

uniapp—android原生插件开发(2原生插件开发)

uniapp—android原生插件开发(3Android真机调试)

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


http://www.kler.cn/a/390596.html

相关文章:

  • jmeter常用配置元件介绍总结之后置处理器
  • Ollama的安装以及大模型下载教程
  • [CKS] K8S ServiceAccount Set Up
  • P8680 [蓝桥杯 2019 省 B] 特别数的和
  • 在C++上实现反射用法
  • 内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪
  • 219页华为供应链管理:市场预测SOP计划、销售预测与存货管理精要
  • tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%
  • C++ 面试问题集合
  • 2024年11月杂记
  • OceanBase 4.3.3 功能解析:列存副本
  • Docker实践与应用举例:从入门到进阶
  • 黑马Java API应用文档下载,中文版!!!!!
  • C02S11-Linux系统的安全与控制
  • Cesium基础-(Entity)-(model )
  • 如何详细查询全球药品研发的进度信息?
  • 【大数据测试 Elasticsearch — 详细教程及实例】
  • 系统启动时将自动加载环境变量,并后台启动 MinIO、Nacos 和 Redis 服务
  • 第七部分:2. STM32之ADC实验--AD多通道(AD采集三路传感器模块实验:光敏传感器、热敏传感器、反射式传感器附赠温湿度传感器教程)
  • 【Pikachu】越权访问实战
  • Oracle数据库 查看SQL执行计划的几种方法
  • vue2 通过路由拦截实现 token 刷新功能
  • 手持测温热像仪市场规模:预计2030年全球市场规模将达到24.9亿美元
  • 【Leecode】Leecode刷题之路第45天之跳跃游戏II
  • HARCT 2025 新增分论坛2:机器人系统智能控制
  • docker基础:搭建centos7(详见B站泷羽sec)