初始化 HarmonyOS SDK

更新时间: 2024/09/03 16:06:42

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

调用时机

对 NIM SDK 进行初始化的时机,是在调用各项即时通讯功能之前。一般情况下,在应用的生命周期内,仅需进行一次初始化。

前提条件

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

第一步:注册服务

调用 NIMSdk.registerCustomServices 方法注册使用的服务。

参数说明

TypeScriptstatic registerCustomServices(serviceType: V2NIMProvidedServiceType, creator: V2ServiceCreator)
参数 类型 说明
serviceType V2NIMProvidedServiceType 服务类型
creator V2ServiceCreator 服务构造器

示例代码

TypeScript// 根据业务,选择所需服务进行注册
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_TEAM, (core, serviceName, serviceConfig) => new V2NIMTeamServiceImpl(core, serviceName, serviceConfig))
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_CLIENT_ANTISPAM_UTIL, (core, serviceName, serviceConfig) => new V2NIMClientAntispamUtil(core, serviceName, serviceConfig));

/** 选择“云端会话”或“本地会话”,两者互斥。开通云端会话,则需注册 CONVERSATION 和 CONVERSATION_GROUP;若开通本地会话,则需注册 LOCAL_CONVERSATION **/
// A. 选择云端会话(若开通了会话分组则带上 CONVERSATION_GROUP)
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_CONVERSATION, (core, serviceName, serviceConfig) => new V2NIMConversationServiceImpl(core, serviceName, serviceConfig));
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_CONVERSATION_GROUP, (core, serviceName, serviceConfig) => new V2NIMConversationGroupServiceImpl(core, serviceName, serviceConfig));
// B. 选择本地会话
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_LOCAL_CONVERSATION, (core, serviceName, serviceConfig) => new V2NIMLocalConversationServiceImpl(core, serviceName, serviceConfig))

NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_MESSAGE, (core, serviceName, serviceConfig) => new V2NIMMessageServiceImpl(core, serviceName, serviceConfig));
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_USER, (core, serviceName, serviceConfig) => new V2NIMUserServiceImpl(core, serviceName, serviceConfig));
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_FRIEND, (core, serviceName, serviceConfig) => new V2NIMFriendServiceImpl(core, serviceName, serviceConfig));
NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_SIGNALLING, (core, serviceName, serviceConfig) => new V2NIMSignallingServiceImpl(core, serviceName, serviceConfig))

第二步:初始化

调用 newInstance 方法创建实例并实现初始化。

参数说明

TypeScriptstatic newInstance(context: common.Context, initializeOptions: NIMInitializeOptions, serviceOptions: NIMServiceOptions = {}): NIMInterface
参数 类型 说明
context common.Context 应用上下文
initializeOptions NIMInitializeOptions SDK 的配置信息
serviceOptions NIMServiceOptions 业务服务的配置信息

NIMInitializeOptions 的配置参数

参数 类型 是否必选 说明
appkey string 应用的 App Key,在 网易云信控制台 创建应用后获取。
xhrConnectTimeout number 否,默认为 30000 ms 建立连接时的 xhr 请求的超时时间
socketConnectTimeout number 否,默认为 30000 ms 建立 websocket 连接的超时时间

NIMServiceOptions 的配置参数

参数 类型 是否必选 说明
loginServiceConfig NIMLoginServiceConfig LoginService 的配置参数

NIMLoginServiceConfig 的配置参数

参数 类型 是否必选 说明
lbsUrls string[] lbs 地址。SDK 连接时会向 lbs 地址请求得到 socket 连接地址
linkUrl string socket 备用地址,当 lbs 请求失败时,尝试直接连接 socket 备用地址
customClientType number 自定义客户端类型
customTag string 自定义客户端标签

示例代码

TypeScriptlet initializeOptions: NIMInitializeOptions = {
appkey: "your appkey ",
logLevel: LogLevel.Debug,
isOpenConsoleLog: true // 打开后可以将 nimsdk 的日志输出到控制台
};

let serviceOptions: NIMServiceOptions = {
loginServiceConfig: {
    lbsUrls: ['https://lbs.netease.im/lbs/webconf'],
    linkUrl: 'weblink-harmony-tmp.netease.im:443'
}
}

const nim = NIMSdk.newInstance(context, initializeOptions, serviceOptions)

下一步

完成初始化后,您可以尝试 登录 IM

此文档是否对你有帮助?
有帮助
去反馈
  • 调用时机
  • 前提条件
  • 第一步:注册服务
  • 参数说明
  • 示例代码
  • 第二步:初始化
  • 参数说明
  • 示例代码
  • 下一步