• " level="1">globalEvent
    • 内置的全局事件
    • 触发全局事件
  • API
    • addEventListener
      • addEventListener(eventName, callback)
  • removeEventListener
    • removeEventListener(eventName)

    " class="reference-link">globalEvent

    globalEvent 用于监听持久性事件,例如定位信息,陀螺仪等的变化。全局事件是需要额外 APIs 处理的次要 API。

    内置的全局事件

    WeexSDK 对获取应用前后台事件做了支持,开发者可以在页面内监听对应的事件,获取应用当前是前台或后台,以方便暂停音乐,视频等,只需要指定需要监听的事件名称和回调函数就可以,例如:

    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.addEventListener('WXApplicationDidBecomeActiveEvent', function(e) {
    3. console.log('WXApplicationDidBecomeActiveEvent');
    4. });
    • WXApplicationDidBecomeActiveEvent,应用被前台的时候触发
    • WXApplicationWillResignActiveEvent,应用即将被后台时候触发

    示例

    warning 注意目前只有 platform 为 iOS 和 Android 才能支持。获取当前 platform

    触发全局事件

    Android

    1. Map<String,Object> params=new HashMap<>();
    2. params.put("key","value");
    3. mWXSDKInstance.fireGlobalEventCallback("geolocation", params);

    iOS

    1. [weexInstance fireGlobalEvent:@"geolocation" params:@{@"key":@"value"}];

    API

    addEventListener

    注册对一个全局事件的监听。

    addEventListener(eventName, callback)

    • @eventName,string,事件名称。
    • @callback,function,回调方法。
    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.addEventListener("geolocation", function (e) {
    3. console.log("get geolocation")
    4. });

    removeEventListener

    取消对一个全局事件的监听。

    removeEventListener(eventName)

    • @eventName,string,事件名称。
    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.removeEventListener("geolocation");