uniapp广播接收

复制代码
var main = null;
var receiver = null;
//接收广播
export function recive(success, fail) {
    main = plus.android.runtimeMainActivity(); //获取activity
    //创建自定义广播实例  
    receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
        onReceive: function(context, intent) { //实现onReceiver回调函数  
            plus.android.importClass(intent); //通过intent实例引入intent类,方便以后的‘.’操作  
            var action = intent.getAction()
            if (action == 'com.scanner.broadcast') {
                console.log('监听扫码触发....')
                //条码或二维码
                var data = intent.getExtra("data");
                if (data) {
                    console.log('zhanglp',data.replace(/\n/,''))
                    console.log('zhanglp',data.replace(/\n/,'').replace(/\t/,''))
                    success({
                        type: 'barcode',
                        data: data.replace(/\n/,'').replace(/\t/,'').trim() //处理结束符和换行符为空
                    })
                } else {
                    fail('未识别到扫码数据')
                }
            } else if (action == 'zejie.shanghai.scanner.RFID') {
                console.log('监听RFID触发....')
                //RFID码
                var data = intent.getExtra("data");
                if (data) {
                    console.log('zhanglp',data.replace(/\n/,''))
                    console.log('zhanglp',data.replace(/\n/,'').replace(/\t/,''))
                    success({
                        type: 'rfid',
                        data: data.replace(/\n/,'').replace(/\t/,'').trim()
                    })
                } else {
                    fail('未识别到RFID数据')
                }
            }
        }
    });
    var IntentFilter = plus.android.importClass('android.content.IntentFilter'); //网络
    var Intent = plus.android.importClass('android.content.Intent');
    var filter = new IntentFilter(); //过滤
    filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); //监听飞行模式 
    // filter.addAction("zeji.shanghai.scanner.RFID"); //监听rfid     
    // filter.addAction("zeji.shanghai.scanner.barcode"); //监听barcode

    filter.addAction("zejie.shanghai.scanner.RFID"); //监听rfid
    filter.addAction("com.scanner.broadcast"); //监听bar

    var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter"); //蓝牙
    var BAdapter = new BluetoothAdapter.getDefaultAdapter();
    filter.addAction(BAdapter.ACTION_STATE_CHANGED); //监听蓝牙
    main.registerReceiver(receiver, filter); //注册监听
}
//取消监听
export function unregisterReceiver(){
    main.unregisterReceiver(receiver);
}
复制代码

 

posted @   土豆哥  阅读(2633)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2017-12-22 MongoDB基础知识记录
点击右上角即可分享
微信分享提示