初始化

更新时间: 2023/07/21 06:56:54

在使用 SDK 其它功能前,必须先进行初始化。本文中将详细说明 IM UIKit 初始化的方法。如您首次使用 IM UIKit,建议您先阅读快速集成 IM UIKit

如果您已集成过 NIM SDK,并且在自己的代码中拥有 NIM SDK 实例,请参考初始化(兼容 NIM SDK)进行初始化。

前提条件

注意事项

  • 在应用生命周期内,只需初始化一次。
  • Provider 内部管理 IM UIKit 与 IM 服务端的连接与断连。如果需要手动连接和断连,请参考登录相关
  • Provider 内部管理着全局的状态,一般无需开发者关心。如需访问上下文,请参考全局上下文

初始化说明

如果您尚未集成过网易云信 NIM SDK (Netease Instant Messaging SDK,以下简称 NIM SDK),可采用如下方式对 IM UIKit 进行初始化。

初始化参数说明

参数 类型 必填 说明
sdkVersion Number 传入12选择基于哪个 IM SDK 集成 IM UIKit
1:基于 NIM Web SDK
2:基于 NIM Web SDK 的增强版(即 NIM Web Elite SDK)
initOptions Object NIM SDK 初始化参数。详见NIM SDK 初始化参数说明
otherOptions Object NIM SDK 初始化其他参数。详见NIM SDK 其他初始化参数说明
localOptions Object 本地默认行为参数。详见下文
funcOptions Object NIM SDK 初始化回调函数,详见NIM SDK 初始化
localeConfig Object 自定义文案。详细配置参考语言设置
renderIdle () => JSX.Element 连接前的渲染函数,不传默认为 null
renderConnecting () => JSX.Element 连接中的渲染函数,不传默认为 Loading……
renderDisconnected () => JSX.Element 连接断开时的渲染函数,不传默认为 当前网络不可用,请检查网络设置
localOptions 参数 类型 必填 说明
p2pMsgReceiptVisible boolean 是否需要显示单聊消息的已读和未读标记,默认 false
teamMsgReceiptVisible boolean 是否需要显示群聊消息的已读和未读标记,默认 false
loginStateVisible boolean 是否显示在线离线状态,默认 true
allowTransferTeamOwner boolean 是否允许群主转让,默认 false
addFriendNeedVerify boolean 添加好友是否需要对方确认,默认为 true
needMention boolean 是否需要@消息提醒,默认true
sendMsgBefore function 发送消息前的钩子函数,异步函数,可在发送消息前拿到消息体,向消息体中添加自定义参数。 原型:sendMsgBefore: <T = ISendCustomMsgOptions | IBaseSendFileOptions | ISendTextMsgOptions>(options: T) => Promise<T>;
例如给消息加上推送相关参数,具体请参考以下示例

给消息加上推送相关参数的示例代码如下:

// 本地默认行为参数
  const localOptions = {
    addFriendNeedVerify,
    sendMsgBefore:(options:any ) => {
      const pushInfo = {
        needPushNick: '',
        isPushable: false,
        pushContent: '',
        pushPayload: JSON.stringify({channel_id:'xxxxx'}),
        apns: {
          accounts:'',
          content: '',
          forcePush: '',
        },      
      }
      options = {
        ...options,
        ...pushInfo
        }  
      return options  
    }
  }
  
<Provider
    //...
    localOptions={localOptions}
  >
    <IMApp/>
  </Provider>

初始化示例代码

import React from 'react'
import { Provider } from '@xkit-yx/im-kit-ui'

const App = () => {
  const initOptions = {
    appkey: '', //传入您的App Key
    account: '', // 传入您的云信IM账号
    token: '', // 传入您的Token
    debugLevel: 'debug',//设置日志level
    // 参考 NIM SDK 的 initOptions
  }

  return (
    <Provider initOptions={initOptions} sdkVersion={1}>
      <div className="app">……</div>
    </Provider>
  )
}
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 注意事项
  • 初始化说明
  • 初始化参数说明
  • 初始化示例代码