[HBuilder]HBuilder应用监听PDA扫描枪广播


之前在对PDA定制开发的时候,对扫描到的二维码有监听需求,代码如下

if (window.plus) {
    plusReady();
} else {
    document.addEventListener('plusready', plusReady, false);
}
function plusReady() {
    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: function (context, intent) {
            plus.android.importClass(context); //通过intent实例引入intent类,方便以后的‘.’操作  
						//byte类型数据,扫描枪返回数据
            var barocode = intent.getByteArrayExtra("barocode");
						//返回数据长度
            var barocodelen = intent.getIntExtra("length", 0);
            //var temp = intent.getByteExtra("barcodeType", (byte) 0);
            var aimid = intent.getByteArrayExtra("aimid");
console.log(byteToString(barocode))
            alert(byteToString(barocode))
            //main.unregisterReceiver(receiver); //取消监听  
        }
    });
    var IntentFilter = plus.android.importClass('android.content.IntentFilter');
    var Intent = plus.android.importClass('android.content.Intent');
    var filter = new IntentFilter();
    filter.addAction("scan.rcv.message"); //监听扫描  
    main.registerReceiver(receiver, filter); //注册监听  
}
//基类方法 转换byte为string字符串
function byteToString(arr) {
    if (typeof arr === 'string') {
        return arr;
    }
    var str = '',
        _arr = arr;
    for (var i = 0; i < _arr.length; i++) {
        var one = _arr[i].toString(2),
            v = one.match(/^1+?(?=0)/);
        if (v && one.length == 8) {
            var bytesLength = v[0].length;
            var store = _arr[i].toString(2).slice(7 - bytesLength);
            for (var st = 1; st < bytesLength; st++) {
                store += _arr[st + i].toString(2).slice(2);
            }
            str += String.fromCharCode(parseInt(store, 2));
            i += bytesLength - 1;
        } else {
            str += String.fromCharCode(_arr[i]);
        }
    }
    return str;
}
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:AgGrid 隐藏loading状态
下一篇:AgGrid 删除一行数据后自动移动焦点
评论列表

发表评论

评论内容
昵称:
关联文章

[HBuilder]HBuilder应用监听PDA扫描广播
.NETCore IIS应用程序池事件监听
C# 扫描识别图片中的文字(.NET Framework)
PDA android获得屏幕设计尺寸
JOC快速开发平台,增加调试监听功能
Microsoft Store 桌面应用发布流程(二)之提交应用
C# - 逆变的具体应用场景
Microsoft Store 桌面应用发布流程(一)之打包应用
如何提升.NET控制台应用体验?
使用.NET 6开发TodoList应用(28)——实现应用程序健康检查
dotnet 使用 WpfAnalyzers 辅助分析 WPF 应用代码缺陷
用 WinUI 3 开发了一个摸鱼应用
使用.NET 6开发TodoList应用(25)——实现RefreshToken
使用.NET 6开发TodoList应用(12)——实现ActionFilter
使用.NET 6开发TodoList应用(9)——实现PUT请求
使用.NET 6开发TodoList应用(22)——实现缓存
使用.NET 6开发TodoList应用(16)——实现查询排序
使用.NET 6开发TodoList应用(15)——实现查询搜索
C# 在PDF文档中应用多种不同字体
使用.NET 6开发TodoList应用(14)——实现查询过滤

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码