首页 > 其他分享 >uni-app PDA扫描

uni-app PDA扫描

时间:2024-10-21 16:24:31浏览次数:1  
标签:return app plus PDA var uni android pda 页面

1.前言

  • PDA扫码是工厂项目中是非常常见的功能,这里记录下工作中的开发思路和模板,仅供参考
  • PDA扫码模式:模拟输入和广播模式
  • 模拟输入:模拟键盘输入,一般后面会设置追加一个回车,优点是通用型强,缺点是每次扫描前需要先获取焦点,且弹出的软键盘会遮挡页面布局
  • 广播模式:通过底层的广播进行事件驱动,优点是无须获取焦点,可随意扫码,缺点是需要进行适配(根据不同的设备型号适配对应的广播名称),二是如果页面有多个输入框,则需要额外的逻辑进行当前扫描属于哪个输入框

2.广播扫描

  • 启动App时进行初始化,广播触发时,拿到当前页面,并触发固定的方法(main.js)
// #ifdef APP
//初始化pda扫码
import pda from '@/libs/util/pda.js'
pda.initScan()
// #endif
  • 页面监听
<script>
export default{
    methods: {
        //对接pda扫码
		handlePdaScan(code){
			
		},
    }
}
</script>
  • 不推荐使用公共组件:一是每个页面都需要引入和销毁,增加代码体积,二是后台页面也会响应扫描,增加出bug的风险

3.广播扫描代码

var main = null
var filter = null
var receiver = null

//适配的pda列表
var pdaList = [
	
]

//当前设备型号
var model = plus.device.model.toLowerCase()


var pda = {
	initScan() {
		//  #ifdef APP
		main = plus.android.runtimeMainActivity() //获取activity
		var context = plus.android.importClass('android.content.Context') //上下文
		var IntentFilter = plus.android.importClass('android.content.IntentFilter')
		filter = new IntentFilter()
		//获取action
		var action = getAction()
		filter.addAction(action)
		
		 
		receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
			onReceive: (context, intent) => {
				//能接收到广播说明当前设备为pda设备(未启用)
				getApp().globalData.isPda = true
				
				
				plus.android.importClass(intent)
				var name = getName()
				var code = intent.getStringExtra(name)
				//拿到当前页面
				var nowPage = getCurrentPages().pop()
				//调用当前页面的方法,将结果传递过去
				nowPage.$vm.handlePdaScan && nowPage.$vm.handlePdaScan(code)
			}
		})
		
		main.registerReceiver(receiver, filter)
		// #endif
	}
}

//匹配Action
function getAction(){
	var target = pdaList.find(item=>{
		return item.model.toLowerCase() == model
	})
	if(target){
		return target.action
	}else{
		return "com.juqent.scan"
	}
}

//匹配name
function getName(){
	var target = pdaList.find(item=>{
		return item.model.toLowerCase() == model
	})
	if(target){
		return target.name
	}else{
		return "data"
	}
}

export default pda

标签:return,app,plus,PDA,var,uni,android,pda,页面
From: https://www.cnblogs.com/OrochiZ-/p/18489698

相关文章

  • 搭子陪玩伴游线上游戏陪玩付费语音陪聊系统源码线下家政源码一体式部署(h5+小程序+app)
    该平台将满足用户寻找旅行搭子、日常活动搭子、陪伴及享受本地生活服务的需求,同时通过商城分销模式为商家提供新的销售渠道,实现用户、商家与平台的共赢。通过整合线上线下资源,提供一站式服务体验,满足用户多样化需求,同时为商家和合作伙伴创造更多商业价值。现在的年轻人,最常见......
  • 基于node.js+vue基于Android的学生考勤APP(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于学生考勤管理的研究,现有研究主要以传统方式(如纸质签到等)为主,专门针对基于Android平台开发学生考勤APP的研究较少。在国内外,虽然考勤管理一直是教育......
  • uniapp授权如何多个权限
    <template><div><button@click="handleRequestPermission">拉取权限</button></div></template><script>exportdefault{data(){return{hasMicPermission:false,//......
  • 【Unity】协程
    协程在主线程执行,可以利用yield实现类似多线程/异步的操作StartCoroutineStartCoroutine("方法名");//无参数StartCoroutine(fun(a));//有参数StartCoroutine("方法名",argu);//有参数StopCoroutineyieldyieldreturnnull;//暂停等待下一帧继续执行yieldreturn0;//同......
  • springboot+vue办公用品进销存及统计预测APP设计与实现【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今信息化高速发展的时代,企业管理逐渐走向智能化与自动化。办公用品作为企业日常运营不可或缺的一部分,其进销存管理直接关系到企业的成本控制与运营效率。传统的办公用品管理方式大多依赖于人工记录与统计,不仅耗时费力,还容易出错。......
  • Springboot启动失败问题:Application run failed(jdk原因)
    以下代码报错ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.2024-10-1921:56:55.234ERROR16584---[main]o.s.boot.SpringApplication:Applicationrunfailed......
  • 微信小程序 php+uniapp医院预约挂号体检系统 0d26l
    目录项目介绍具体实现截图技术介绍设计方法和思路小程序框架以及目录结构介绍java类核心代码部分展示其他uniapp小程序题目推荐详细视频演示源码获取项目介绍系统是医院建设中不可缺少的基础设施与支撑环境,是中心的整体形象、档次和服务水准的有力表现方式。它需要......
  • Unity3D c# 使对象物体始终面向摄像机
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassLookAtMainCamera:MonoBehaviour{ //Usethisforinitialization voidStart(){ } //Updateiscalledonceperframe voidUpdate(){......
  • 基于node.js+vue基于Android的儿童成长管理APP(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着信息技术的飞速发展,移动应用在各个领域得到了广泛的应用。关于儿童成长管理方面的研究,现有研究主要以传统的纸质记录或单一功能的软件为主,专门针对......
  • springboot+vue安卓旅游app的设计与实现【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,智能手机已成为人们日常生活中不可或缺的一部分。旅游业作为全球经济的重要组成部分,其数字化转型已成为必然趋势。近年来,安卓旅游APP作为连接旅游者与旅游资源的桥梁,凭借其便捷性、实时性和互动性,受到了......