监听扫码枪广播事件源码:
class pdaScan {
constructor(onReceive){
this.main
this.filter
this.receiver
this.init(onReceive)
this.start = this.start
this.stop = this.stop
}
/** 剩余下个变量已经做了全局变量
*
* 定义广播
* that:传this;
*/
init(onReceive){
/* #ifdef APP-PLUS */
//获取activity
this.main = plus.android.runtimeMainActivity();
const IntentFilter = plus.android.importClass('android.content.IntentFilter');
this.filter = new IntentFilter();
// 扫描设置的广播名称 每种PDA可能不同
// filter.addAction("com.android.server.scannerservice.broadcast");
this.filter.addAction("com.scanner.broadcast");
this.receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
onReceive: (context, intent) => {
plus.android.importClass(intent);
// 查询来源于哪个广播的名称 const action = intent.getAction()
// 扫描设置的开发者选项--键值名称 每种PDA可能不同
const code = intent.getStringExtra("data");
// 业务
//到这里扫描成功了,可以调用自己的业务逻辑,code就是扫描的结果 return出code进行业务处理
onReceive && onReceive(code);
}
});
/* #endif */
}
start(){
/* #ifdef APP-PLUS */
this.main.registerReceiver(this.receiver, this.filter);
/* #endif */
}
stop(){
/* #ifdef APP-PLUS */
this.main.unregisterReceiver(this.receiver);
/* #endif */
}
}
export default pdaScan
组件使用时的源码:
onLoad(option) {
this.pdaObj = new pdaScan(collback) // 回调函数会获得识别后的结果
},
onUnload() {
this.pdaObj.stop()
},
onHide() {
this.pdaObj.stop()
},
onShow() {
this.pdaObj.start()
},
pda机器设置:
在机器上找到设置-->广播设置--> 自定义广播名称改成:com.scanner.broadcast