终端事件

当终端网络切换,或者横竖屏改变的时候,终端需要像前端发送一些全局的广播事件,这样前端可以根据不同的状态来控制业务状态。


终端发送

终端在需要发送事件的地方调用代码:

  1. // 也可以参考HippyEventObserverModule.m
  2. [self sendEvent: @"rotate" params: @{@"foo":@"bar"}];
  3. - (void)sendEvent:(NSString *)eventName params:(NSDictionary *)params
  4. {
  5. HippyAssertParam(eventName);
  6. // 这里的"EventDispatcher"和"receiveNativeEvent"是常量,无需也不能更改
  7. [self.bridge.eventDispatcher dispatchEvent:@"EventDispatcher" methodName:@"receiveNativeEvent" args:@{@"eventName": eventName, @"extra": params ? : @{}}];
  8. }

前端接收

这里是向前端发送一个名叫rotate的事件里面有个参数是result,这样就发送到前端去了。然后在前端进行接收处理。

PS: 最新版 Hippy 的监听器添加方法由addEventListener改为了addListener

  1. import { HippyEventEmitter } from '@hippy/react';
  2. let hippyEventEmitter = new HippyEventEmitter();
  3. this.call = hippyEventEmitter.addListener("rotate", (e) => {
  4. // log结果: { foo: 'bar' }
  5. console.log(e) ;
  6. });

注意

前端如果不需要使用的时候记得调用一下移除监听的方法。

  1. this.call.remove()