HarmonyOS

更新时间: 2024/06/05 13:57:12

本文提供初始化 NIM Harmony SDK 的详细说明。

功能介绍

在使用云信 IM 的各项功能之前,必须先对 NIM SDK 进行初始化。一般情况下,在应用的生命周期内,仅需进行一次初始化。

前提条件

开始 NIM Harmony SDK 的初始化前,请确保:

实现步骤

步骤一:注册服务

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

  • 参数说明

    static 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));
      NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_NOTIFICATION, (core, serviceName, serviceConfig) => new V2NIMNotificationServiceImpl(core, serviceName, serviceConfig));
      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));
      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_SETTING, (core, serviceName, serviceConfig) => new V2NIMSettingServiceImpl(core, serviceName, serviceConfig));
      NIMSdk.registerCustomServices(V2NIMProvidedServiceType.V2NIM_PROVIDED_SERVICE_SIGNALLING, (core, serviceName, serviceConfig) => new V2NIMSignallingServiceImpl(core, serviceName, serviceConfig))
    

步骤二:初始化

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

  • 参数说明

    static 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 ",
    };
    
    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

此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 前提条件
  • 实现步骤
  • 步骤一:注册服务
  • 步骤二:初始化
  • 后续步骤