addGeTuiEventHandler function

void addGeTuiEventHandler({
  1. EventHandler? onReceiveDeviceToken,
  2. EventHandlerMessageModel? onReceiveMessageData,
  3. EventHandlerMessageModel? onNotificationMessageArrived,
  4. EventHandlerBool? onReceiveOnlineState,
  5. EventHandlerMessageModel? onNotificationMessageClicked,
  6. EventHandler? onRegisterVoIpToken,
  7. EventHandler? onAppLinkPayload,
  8. EventHandlerMap? onReceiveVoIpPayLoad,
})

消息监听

Implementation

void addGeTuiEventHandler({
  /// Android 集成了厂商推送通道 获取厂商token
  /// ios deviceToken  deviceToken 不为空 表示个推服务注册成功
  EventHandler? onReceiveDeviceToken,

  /// android ios 收到的透传内容
  EventHandlerMessageModel? onReceiveMessageData,

  /// android   通知到达,只有个推通道下发的通知会回调此方法
  /// ios 收到APNS消息
  EventHandlerMessageModel? onNotificationMessageArrived,

  /// android 在线状态
  EventHandlerBool? onReceiveOnlineState,

  /// android 通知点击,只有个推通道下发的通知会回调此方法
  EventHandlerMessageModel? onNotificationMessageClicked,

  /// ios voIpToken
  EventHandler? onRegisterVoIpToken,

  /// ios 收到AppLink消息
  EventHandler? onAppLinkPayload,

  /// ios 收到VoIP消息
  EventHandlerMap? onReceiveVoIpPayLoad,
}) {
  if (!_supportPlatform) return;
  _channel.setMethodCallHandler((MethodCall call) async {
    switch (call.method) {
      case 'onReceiveOnlineState':
        if (onReceiveOnlineState == null) return;
        return onReceiveOnlineState(call.arguments as bool?);
      case 'onReceiveMessageData':
        if (onReceiveMessageData == null) return;
        final Map<dynamic, dynamic>? map =
            call.arguments as Map<dynamic, dynamic>?;
        if (map != null)
          return onReceiveMessageData(GTMessageModel.fromJson(map));
        return onReceiveMessageData(null);
      case 'onNotificationMessageArrived':
        if (onNotificationMessageArrived == null) return;
        final Map<dynamic, dynamic>? map =
            call.arguments as Map<dynamic, dynamic>?;
        if (map != null)
          return onNotificationMessageArrived(GTMessageModel.fromJson(map));
        return onNotificationMessageArrived(null);

      case 'onNotificationMessageClicked':
        if (onNotificationMessageClicked == null) return;
        final Map<dynamic, dynamic>? map =
            call.arguments as Map<dynamic, dynamic>?;
        if (map != null)
          return onNotificationMessageClicked(GTMessageModel.fromJson(map));
        return onNotificationMessageClicked(null);

      case 'onReceiveDeviceToken':
        if (onReceiveDeviceToken == null) return;
        return onReceiveDeviceToken(call.arguments.toString());

      case 'onAppLinkPayload':
        if (onAppLinkPayload == null) return;
        return onAppLinkPayload(call.arguments.toString());

      case 'onRegisterVoIpToken':
        if (onRegisterVoIpToken == null) return;
        return onRegisterVoIpToken(call.arguments.toString());

      case 'onReceiveVoIpPayLoad':
        if (onReceiveVoIpPayLoad == null) return;
        return onReceiveVoIpPayLoad(call.arguments as Map<dynamic, dynamic>?);
      default:
        throw UnsupportedError('Unrecognized Event');
    }
  });
}