初始化
更新时间: 2024/03/14 19:21:09
在使用 SDK 其它功能前,必须先进行初始化。本文中将详细说明 IM UIKit 初始化的方法。如您首次使用 IM UIKit,建议您先阅读快速集成 IM UIKit。
如果您已集成过 NIM SDK,并且在自己的代码中拥有 IM SDK 实例,请参考初始化(兼容 NIM SDK)进行初始化。
前提条件
- 已在云信控制台创建应用,获取 App Key。
- 已注册云信 IM 账号,获取 accid 和 token。
- 已导入组件。
注意事项
- 在应用生命周期内,只需初始化一次。
- Provider 内部管理 IM UIKit 与 IM 服务端的连接与断连。如果需要手动连接和断连,请参考登录相关。
- Provider 内部管理着全局的状态,一般无需开发者关心。如需访问内部状态,请参考全局上下文。
初始化说明
如果您尚未集成过网易云信 IM SDK (Netease Instant Messaging SDK,以下简称 NIM SDK),可采用如下方式对 IM UIKit 进行初始化。
初始化参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
sdkVersion |
Number | 是 | 使用的 NIM SDK 版本。1 为 NIM Web SDK;2 为 NIM Web Elite SDK (IM 即时通讯含圈组版) |
initOptions |
Object | 是 | NIM SDK 初始化参数。详见NIM SDK 初始化参数说明 |
otherOptions |
Object | 否 | NIM SDK 初始化其他参数。详见NIM SDK 其他初始化参数说明 |
localOptions |
Object | 否 | 本地默认行为参数。详见下文 |
funcOptions |
Object | 否 | NIM SDK 初始化回调函数,只有当 sdkVersion 为 1 时才生效。详见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 |
teamManagerVisible |
boolean | 否 | 是否需要显示群管理员功能,默认 false(不显示) 该配置项用来控制当身份为管理员时的主动操作是否展示,不影响其他管理员身份的显示。若需要,可设置为 true |
sendMsgBefore | function | 否 | 发送消息前的钩子函数,异步函数,可在发送消息前拿到消息体,向消息体中添加自定义参数。 原型:sendMsgBefore: <T = ISendCustomMsgOptions | IBaseSendFileOptions | ISendTextMsgOptions>(options: T) => Promise<T>; 该回调的具体参数说明参见IBaseSendMsgOptions例如给消息加上推送相关参数,具体请参考以下示例 |
给消息加上推送相关参数的示例代码如下:
// 本地默认行为参数
const localOptions = {
addFriendNeedVerify,
sendMsgBefore: (options) => {
const pushInfo = {
needPush: true,
pushContent: 'xxxxxxx',
needForcePush: true,
needPushNick: true
}
return {
...pushInfo,
...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
// 参考 IM Elite SDK 的 initOptions
}
return (
<Provider initOptions={initOptions} sdkVersion={2}>
<div className="app">……</div>
</Provider>
)
}
此文档是否对你有帮助?