j***@qq.com
j***@qq.com
  • 发布:2018-02-08 10:03
  • 更新:2019-04-08 12:43
  • 阅读:4013

如何使用Native.js进行BroadcastReceiver广播接收

分类:Native.js

现在要在html中写一个receiver来接收服务发来的广播,广播是自定义类型的,参考了《使用BroadcastReceiver监听蓝牙开关状态》文章,按照这个写的但是就是注册不成功,收不到广播。代码如下:
mui.plusReady(function(){
alert('开始注册');
var main = plus.android.runtimeMainActivity();//获取acitivity
alert('获取acitivity');
var context = plus.android.importClass("android.content.Context");//获取上下文
alert('Context');
var receiver = plus.android.implements("io.dcloud.feature.internal.reflect.BroadcastReceiver",{
onReceive:getReceive//实现onReceive回调函数
});
alert('receiver');
var IntentFilter = plus.android.importClass("android.content.IntentFilter");//引入过滤器
alert('引入过滤器');
var Intent = plus.android.importClass("android.content.Intent");
alert('Intent');
var filter = new IntentFilter();
filter.addAction("com.xmpp.smack.is_login_success");//监听登录成功广播
alert('监听登录成功广播');
main.registerReceiver(receiver,filter);//注册监听
alert('注册成功');
})
function getReceive(context,intent){
alert('hello');
var msg = intent.getStringExtra("isLoginSuccess");
alert(msg);
}
function loginSmack(){
plus.smackplugin.SmackLoginFunction("18632693336","123456", function( result ) {alert( result[0] );},function(result){alert(result)});
}
哪位大神帮忙给看看

2018-02-08 10:03 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com - 不忘初心、砥砺前行

成功了吗?

c***@qq.com

c***@qq.com

function broadcastReceiver() {
var receiver;
main = plus.android.runtimeMainActivity();
//获取activity
receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
onReceive: function(context, intent) {
//实现onReceiver回调函数
plus.android.importClass(intent);
//通过intent实例引入intent类,方便以后的‘.’操作
console.log(intent.getAction());
//获取action
}
});
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var Intent = plus.android.importClass('android.content.Intent');
var filter = new IntentFilter();
filter.addAction(Intent.ACTION_USER_PRESENT);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
main.registerReceiver(receiver, filter); //注册监听
}

试试这个,我测试了,监听正常,
如果app进程退出,就没法监听到了

该问题目前已经被锁定, 无法添加新回复