weex使用globalEvent注册全局监听的时候,监听app端发送过来的消息,app端是在接收到推送消息的时候,发送消息到js端,app端并没有为此去自定义一个module,是按照官网的来做。
Android:
Map<String,Object> params=new HashMap<>();
params.put("key","value");
mWXSDKInstance.fireGlobalEventCallback("geolocation",params);
js:
var globalEvent = weex.requireModule('globalEvent');
globalEvent.addEventListener("geolocation", function (e) {
console.log("get geolocation")
});
两端分别只实现了上述代码,但是在具体操作的过程中,发现 js 端并没有接收到 Android 端发送过来的消息,但是添加监听的代码已经执行了,并没有报错。
呃,我一直在用,都是可以实现的。是不是你Android端使用
fireGlobalEventCallback
的时间不对,比如你在监听器监听前就执行了fireGlobalEventCallback
方法。举个栗子,首先我在JS端执行
addEventListener
方法注册监听时间。然后在android端,这里我是在接收到广播后调用fireGlobalEventCallback
这个方法,这时JS端的监听器就会有响应并收到数据。可以参考下weex接收来自Android手机的Broadcast广播消息