• 全局事件
    • 如何让你的模块支持全局事件
      • Android
      • iOS
    • API
      • addEventListener(String eventName, String callback)
        • 参数
        • 示例
      • removeEventListener(String eventName)
        • 参数
        • 示例
    • 已有的全局事件
      • 应用前后事件

    全局事件

    0.8

    globalEvent 用于监听持久性事件,例如定位信息,陀螺仪等的变化。全局事件是需要额外 APIs 处理的次要 API。你能通过 addEventListener 注册事件监听,当你不再需要的时候,也可以通过 removeEventListener 取消事件监听。

    提醒

    • 这是一个实例级别的事件,而非应用级别。

    如何让你的模块支持全局事件

    API 开发完成后,当需要发送事件时,需要通过以下方法:

    1. /**
    2. *
    3. * @param eventName eventName
    4. * @param params event params
    5. */
    6. instance.fireGlobalEventCallback(eventName,params);

    如何在 weex-html5 组件或模块中分发全局事件?只需在文档元素上分派事件:

    1. var evt = new Event('some-type')
    2. evt.data = { foo: 'bar' }
    3. document.dispatchEvent(evt)

    示例

    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(String eventName, String callback)

    注册全局事件。

    参数

    • eventName {string}:需要监听的事件名称。
    • callback {Function}:触发事件后的回调函数。

    示例

    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.addEventListener("geolocation", function (e) {
    3. console.log("get geolocation")
    4. });

    removeEventListener(String eventName)

    取消事件监听。

    参数

    • eventName {string}:需要取消的事件名称。

    示例

    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.removeEventListener("geolocation");

    已有的全局事件

    0.14

    应用前后事件

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

    1. var globalEvent = weex.requireModule('globalEvent');
    2. globalEvent.addEventListener("WXApplicationDidBecomeActiveEvent", function (e) {
    3. console.log("WXApplicationDidBecomeActiveEvent");
    4. });

    支持的事件名称

    • WXApplicationDidBecomeActiveEvent 应用被前台的时候触发
    • WXApplicationWillResignActiveEvent 应用即将被后台时候触发

    在 dotWe 上试一试

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