初始化(未集成 NIM SDK)
更新时间: 2024/09/27 10:50:00
在使用 SDK 其它功能前,必须先进行初始化。本文中将详细说明 IM UIKit 初始化的方法。如您首次使用 IM UIKit,建议您先阅读集成 IM UIKit。
如果您已集成过 NIM SDK,并且在自己的代码中拥有 NIM SDK 实例,请参考初始化(已集成 NIM SDK)进行初始化。
前提条件
- 已导入组件。
- 已注册云信 IM 账号,获取 accid 和 token。
注意事项
- 在应用生命周期内,只需初始化一次。
- Provider 内部管理 IM UIKit 与 IM 服务端的连接与断连。如果需要手动连接和断连,请参考登录登出。
- Provider 内部管理着全局的状态,一般无需开发者关心。如需访问上下文,请参考全局上下文。
初始化说明
如果您尚未集成过网易云信 NIM SDK,可采用如下方式对 IM UIKit 进行初始化。
初始化参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
sdkVersion |
Number | 是 | 传入1 或2 选择基于哪个 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>
)
}
此文档是否对你有帮助?