67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
let main;
|
||
let filter;
|
||
let receiver;
|
||
let tag = false;
|
||
/**
|
||
* 开始广播监听扫码
|
||
*/
|
||
const start = () => {
|
||
/* #ifdef APP-PLUS */
|
||
main.registerReceiver(receiver, filter);
|
||
// console.log('开始广播监听扫码init')
|
||
/* #endif */
|
||
}
|
||
|
||
|
||
/**
|
||
* 停止广播监听扫码
|
||
* that:传this;
|
||
*/
|
||
const stop = () => {
|
||
/* #ifdef APP-PLUS */
|
||
main.unregisterReceiver(receiver);
|
||
// console.log('停止广播监听扫码init')
|
||
/* #endif */
|
||
}
|
||
|
||
|
||
/** 剩余下个变量已经做了全局变量
|
||
*
|
||
* 定义广播
|
||
* that:传this;
|
||
*/
|
||
const init = (onReceive) => {
|
||
/* #ifdef APP-PLUS */
|
||
//获取activity
|
||
main = plus.android.runtimeMainActivity();
|
||
const IntentFilter = plus.android.importClass('android.content.IntentFilter');
|
||
filter = new IntentFilter();
|
||
// 扫描设置的广播名称A(上面指代了)
|
||
filter.addAction("com.android.server.scannerservice.broadcast");
|
||
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
|
||
onReceive: function (context, intent) {
|
||
plus.android.importClass(intent);
|
||
// 扫描设置的标签名称B(上面指代了)
|
||
const code = intent.getStringExtra("scannerdata");
|
||
if (tag) return;
|
||
tag = true;
|
||
setTimeout(function () {
|
||
tag = false;
|
||
}, 150);
|
||
uni.$emit('xwscan', {
|
||
code: code
|
||
})
|
||
//到这里扫描成功了,可以调用自己的业务逻辑,code就是扫描的结果 return出code进行业务处理
|
||
onReceive
|
||
|
||
}
|
||
});
|
||
/* #endif */
|
||
|
||
}
|
||
|
||
export const broadcastScan = {
|
||
init,
|
||
start,
|
||
stop,
|
||
}; |