初始化 Flutter SDK

更新时间: 2024/09/03 16:07:03

本文介绍如何初始化适配 Flutter 的 V10 系列网易云信即时通讯 SDK(简称 NIM SDK)。

调用时机

集成 NIM Flutter SDK 后,在调用各项即时通讯功能之前需要将其初始化,创建 SDK 实例。

前提条件

初始化 NIM SDK 前,请确保您已经完成了以下操作:

初始化 SDK

将 NIM SDK 集成到客户端后,调用 initialize 方法进行初始化。

示例代码:

dartlate NIMSDKOptions options;
    if (kIsWeb) {
      var base = NIMInitializeOptions(
        appkey: appKey,
        apiVersion: 'v2',
        debugLevel: 'debug',
      );
      options = NIMWebSDKOptions(
        appKey: appKey,
        initializeOptions: base,
      );
    } else if (Platform.isAndroid) {
      final directory = await getExternalStorageDirectory();
      options = NIMAndroidSDKOptions(
          appKey: appKey,
          shouldSyncStickTopSessionInfos: true,
          sdkRootDir:
              directory != null ? '${directory.path}/NIMFlutter' : null);
    } else if (Platform.isIOS) {
      final directory = await getApplicationDocumentsDirectory();
      options = NIMIOSSDKOptions(
        appKey: appKey,
        shouldSyncStickTopSessionInfos: true,
        sdkRootDir: '${directory.path}/NIMFlutter',
        apnsCername: 'your apnsCername',
        pkCername: 'your pkCername',
      );
    } else if (Platform.isMacOS || Platform.isWindows) {
      NIMBasicOption basicOption = NIMBasicOption();
      options = NIMPCSDKOptions(basicOption: basicOption, appKey: appKey);
    } 

    NimCore.instance.initialize(options).then((value) async {
      print('initialize result: $value');
    });

下一步

完成初始化后,可 登录 IM

相关参考

海外数据中心配置

如果您的应用的服务区域为海外数据中心,为满足海外访问域名合规性,您需要自行通过客户端 SDK 配置海外专属域名,包括 link 域名和 LBS 域名。具体请参考 海外数据中心

初始化配置参数

您需要实现 NIMSDKOptions 的子类配置初始化参数。NIMSDKOptions 包含多个子结构体,用于不同平台的特有配置。

  • NIMAndroidSDKOptions 在通用参数的基础上添加了 Android 平台独有的参数。
  • NIMIOSSDKOptions 在通用参数的基础上添加了 iOS 平台独有的参数。
  • NIMPCSDKOptions 适用于 Windows 和 MacOS 平台,通用参数除 AppKey 之外皆无效。
  • NIMWebSDKOptions 适用于 Web 平台,通用参数除 AppKey 之外皆无效。
此文档是否对你有帮助?
有帮助
去反馈
  • 调用时机
  • 前提条件
  • 初始化 SDK
  • 下一步
  • 相关参考
  • 海外数据中心配置
  • 初始化配置参数