初始化(未集成 NIM SDK)

更新时间: 2024/09/27 10:50:00

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

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

前提条件

注意事项

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

初始化说明

如果您尚未集成过网易云信 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 自定义文案。详细配置参考语言设置
renderImIdle () => JSX.Element 连接前的渲染函数,不传默认为 null
renderImConnecting () => JSX.Element 连接中的渲染函数,不传默认为 Loading……
renderImDisconnected () => JSX.Element 连接断开时的渲染函数,不传默认为 当前网络不可用,请检查网络设置
localOptions 参数 类型 必填 说明
p2pMsgReceiptVisible boolean 是否需要显示单聊消息的已读和未读标记,默认 false
teamMsgReceiptVisible boolean 是否需要显示群聊消息的已读和未读标记,默认 false
loginStateVisible boolean 是否显示在线离线状态,默认 true
allowTransferTeamOwner boolean 是否允许群主转让,默认 false
addFriendNeedVerify boolean 添加好友是否需要对方确认,默认 true
needMention boolean 是否需要@消息提醒,默认 true
teamManagerVisible boolean 是否需要显示群管理员功能,默认 false(不显示)
该配置项用来控制当身份为管理员时的主动操作是否展示,不影响其他管理员身份的显示。若需要,可设置为 true
sendMsgBefore function 发送消息前的钩子函数,异步函数,可在发送消息前拿到消息体,向消息体中添加自定义参数。 原型:sendMsgBefore: <T = ISendCustomMsgOptions | IBaseSendFileOptions | ISendTextMsgOptions>(options: T) => Promise<T>;
例如给消息加上推送相关参数,具体请参考以下示例
  • 给消息加上推送相关参数的示例代码如下,在localOptions中的sendMsgBefore中获取到发送前的消息体,在消息体上挂载相关参数:

    // 本地默认行为参数
      const localOptions = {
        addFriendNeedVerify,
        sendMsgBefore:(options:any ) => {
          const pushInfo = {
            needPushNick: '',
            isPushable: true,
            pushContent: '',
            pushPayload: JSON.stringify({channel_id:'xxxxx'}),
            apns: {
              accounts:'',
              content: '',
              forcePush: '',
            },      
          }
          options = {
            ...options,
            ...pushInfo
            }  
          return options  
        }
      }
      
    <Provider
        //...
        localOptions={localOptions}
      >
        <IMApp/>
      </Provider>
    
  • 可以在发送消息时,设置将当前消息进行抄送。在 sendMsgBefore进行配置,将 env 字段挂载在发送前的消息体上即可。

    // 本地默认行为参数
      const localOptions = {
        addFriendNeedVerify,
        sendMsgBefore:(options, type) => {
          const env = 'xxxx'
          return { ...options, env }
        },
      }
      
    <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>
  )
}
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 注意事项
  • 初始化说明
  • 初始化参数说明
  • 初始化示例代码