init method

  1. @override
void init({
  1. SyOptions? syOptions,
})
override

初始化SDK

Implementation

@override
void init({SyOptions? syOptions}) {
  SyImSdkPlatform.instance.init(syOptions: syOptions ?? SyOptions());
  //注册链接监听
  const basicMessageChannel = BasicMessageChannel(
      ChannelCommon.syClientConnectChannel, StringCodec());
  //接收链接消息
  basicMessageChannel.setMessageHandler((message) async {
    ConnectData connectData =
        ConnectData.fromJson(jsonDecode(message.toString()));
    switch (connectData.type) {
      case "CONNECT_SUCCESS":
        if (onConnectListeners.isNotEmpty) {
          for (var element in onConnectListeners) {
            element.onConnectSuccess.call();
          }
        }
        break;
      case "CONNECT_FAIL":
        if (onConnectListeners.isNotEmpty) {
          for (var element in onConnectListeners) {
            element.onConnectFail.call(connectData.code!, connectData.msg!);
          }
        }
        break;
      case "FORCED_OFFLINE":
        if (onConnectListeners.isNotEmpty) {
          for (var element in onConnectListeners) {
            element.onForcedOffLine.call();
          }
        }
        break;
      case "LOGIN_STEP_SYNCING":
        if (onConnectListeners.isNotEmpty) {
          for (var element in onConnectListeners) {
            element.onLoginStepSyncing.call();
          }
        }
        break;

      case "LOGIN_STEP_SYNCING_OK":
        if (onConnectListeners.isNotEmpty) {
          for (var element in onConnectListeners) {
            element.onLoginStepSyncingOk.call();
          }
        }
        break;

      case "ON_LINE_STATUS":
        if (mOnContactListener.isNotEmpty) {
          for (var element in mOnContactListener) {
            SyUserOnlineStatus syUserOnlineStatus =
                SyUserOnlineStatus.fromJson(connectData.msg);
            element.onOnline.call(syUserOnlineStatus);
          }
        }
        break;
    }
    return 'success';
  });
}