参考:https://ask.dcloud.net.cn/article/35044
本代码只适用基于Android 9.0 的IData T1 。其他扫码枪可以通过更改广播地址 以及更改获取获取值的方式。如下两行代码来实现其他扫码枪的扫码功能。需更改扫码结果发送模式为:广播模式
filter.addAction("android.intent.action.SCANRESULT");//监听扫描广播 指定广播地址
var result = intent.getStringExtra("value"); //返回结果 IData T1根据value获取值
完整代码如下:
mui.plusReady(function () {
var main = plus.android.runtimeMainActivity();//获取activity
var context = plus.android.importClass('android.content.Context'); //上下文
var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver',{
onReceive : doReceive });
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var Intent = plus.android.importClass('android.content.Intent');
var filter = new IntentFilter();
filter.addAction("android.intent.action.SCANRESULT");//监听扫描广播 指定广播地址
main.registerReceiver(receiver,filter);//注册广播监听
function doReceive(context, intent) {
plus.android.importClass(intent);//通过intent实例引入intent类
var result = intent.getStringExtra("value"); //返回结果 IData T1根据value获取值
document.getElementById("response").innerHTML = result;
document.getElementById("search").value = result;
console.log(result);
//main.unregisterReceiver(receiver);//取消广播监听
}
})