0.8
globalEvent
用于监听持久性事件,例如定位信息,陀螺仪等的变化。全局事件是需要额外 APIs 处理的次要 API。你能通过 addEventListener
注册事件监听,当你不再需要的时候,也可以通过 removeEventListener
取消事件监听。
提醒
API 开发完成后,当需要发送事件时,需要通过以下方法:
/** * * @param eventName eventName * @param params event params */ instance.fireGlobalEventCallback(eventName,params);
如何在 weex-html5 组件或模块中分发全局事件?只需在文档元素上分派事件:
var evt = new Event('some-type') evt.data = { foo: 'bar' } document.dispatchEvent(evt)
示例
Map<String,Object> params=new HashMap<>(); params.put("key","value"); mWXSDKInstance.fireGlobalEventCallback("geolocation",params);
[weexInstance fireGlobalEvent:@"geolocation" params:@{@"key":@"value"}];
addEventListener(String eventName, String callback)
注册全局事件。
eventName {string}
:需要监听的事件名称。callback {Function}
:触发事件后的回调函数。var globalEvent = weex.requireModule('globalEvent'); globalEvent.addEventListener("geolocation", function (e) { console.log("get geolocation") });
removeEventListener(String eventName)
取消事件监听。
eventName {string}
:需要取消的事件名称。var globalEvent = weex.requireModule('globalEvent'); globalEvent.removeEventListener("geolocation");
0.14
WeexSDK 对获取应用前后台事件做了支持,开发者可以在页面内监听对应的事件,获得应用被前后后这后台,以方便暂停音乐,视频等,只需要指定需要监听的事件名称和回调函数就可以,例如:
var globalEvent = weex.requireModule('globalEvent'); globalEvent.addEventListener("WXApplicationDidBecomeActiveEvent", function (e) { console.log("WXApplicationDidBecomeActiveEvent"); });
支持的事件名称
目前只有 platform 为 iOS 和 Android 才能支持。获取当前 platform