初始化 Flutter SDK
更新时间: 2024/09/03 16:07:03
本文介绍如何初始化适配 Flutter 的 V10 系列网易云信即时通讯 SDK(简称 NIM SDK)。
调用时机
集成 NIM Flutter SDK 后,在调用各项即时通讯功能之前需要将其初始化,创建 SDK 实例。
前提条件
初始化 NIM SDK 前,请确保您已经完成了以下操作:
- 在项目中 集成 SDK。
- 在 网易云信控制台 上 创建应用,并获取 App Key 和 App Secret。
- 注册网易云信 IM 账号,获取 IM 账号和 token。
初始化 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 之外皆无效。
此文档是否对你有帮助?