File tree Expand file tree Collapse file tree 2 files changed +19
-20
lines changed Expand file tree Collapse file tree 2 files changed +19
-20
lines changed Original file line number Diff line number Diff line change @@ -150,20 +150,23 @@ const conn = new WebIM.connection({
150150 useOwnUploadFun: true // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传 URL)
151151});
152152```
153- ### 特别注意事项(uni-app Vue3 模式)
153+
154+ ## 注意事项
154155
155156uni-app 在 ** Vue3 模式** 下,HBuilderX 会默认开启 [ ** 摇树优化(tree-shaking)** ] ( https://uniapp.dcloud.net.cn/collocation/manifest.html#treeshaking ) 。
156- 该优化会在点击发行至` 网站-PC Web或手机H5 ` 后出现误删除环信 SDK 中未被显式引用的模块,导致发行后出现登录失败等异常情况。
157157
158- #### 解决方案任选其一
159- ** 方案一:手动关闭摇树优化(推荐)**
160- 1 . 在 HBuilderX 顶部菜单打开 ` manifest.json ` → ** Web 配置** (H5 配置)。
161- 2 . 找到 ** “发行时启用摇树优化(自动裁剪没有使用的组件和 API 库)”** 。
162- 3 . 先 ** 勾选** ,再 ** 取消勾选** ,随后点击 ** 重新发行** 。
158+ 该优化会在点击发行至 ` 网站-PC Web或手机H5 ` 后出现误删除环信 SDK 中未被显式引用的模块,导致发行后出现登录失败等异常情况。为了避免这些异常情况,你可以采用以下两种解决方案:
159+
160+ ** (推荐)方案一:手动关闭摇树优化**
161+
162+ 1 . 在 HBuilderX 顶部菜单打开 ` manifest.json ` > ** Web 配置** (H5 配置)。
163+ 2 . 找到 ** 发行时启用摇树优化(自动裁剪没有使用的组件和 API 库)** 。
164+ 3 . 先 ** 勾选** ,再 ** 取消勾选** ,然后点击 ** 重新发行** 。
163165 该操作会强制 HBuilderX 重新生成编译缓存,关闭摇树优化。
164166
165167** 方案二:手动配置关闭摇树优化**
166- 在 ` manifest.json ` → 源码视图 → H5 节点下增加以下配置,然后重新编译即可:
168+
169+ 在 ` manifest.json ` > 源码视图 > H5 节点下增加以下配置,然后重新编译即可:
167170
168171``` json
169172"h5" : {
Original file line number Diff line number Diff line change @@ -43,9 +43,10 @@ connection.getServerConversations({pageSize:50, cursor: ''}).then((res)=>{
4343 console .log (res)
4444})
4545```
46+
4647该方法的返回数据包含 ` conversations ` 和 ` cursor ` 参数:
4748
48- - conversations: 会话列表。` conversations ` 为 ` ConversationItem[] ` 类型,` ConversationItem ` 包含如下属性:
49+ - ` conversations ` : 会话列表。` conversations ` 为 ` ConversationItem[] ` 类型,` ConversationItem ` 包含如下属性:
4950
5051| 属性名称 | 描述 |
5152| :--------- | :----- |
@@ -57,17 +58,12 @@ connection.getServerConversations({pageSize:50, cursor: ''}).then((res)=>{
5758| ` unReadCount ` | 未读消息数。 |
5859| ` marks ` | 会话标记。|
5960
60- - cursor: 下次查询数据的游标位置。若 SDK 返回的数据条数小于请求中设置的数目,` cursor ` 的值为空字符串(''),表示当前为最后一页数据。否则,SDK 返回具体的游标位置,指定开始获取数据的位置。
61-
62- ---
61+ - ` cursor ` : 下次查询数据的游标位置。若 SDK 返回的数据条数小于请求中设置的数目,` cursor ` 的值为空字符串(''),表示当前为最后一页数据。否则,SDK 返回具体的游标位置,指定开始获取数据的位置。
6362
64- ## 服务端获取会话列表接口限制与最佳实践
65- ::: tip
66- | 限制点 | 说明 | 推荐做法 |
67- | --------| ------| ----------|
68- | ** lastMessage 与未读数延迟或接口调用超过限制频次** | 服务端更新为 ** 异步** 行为,收到实时消息后 ** 立即调用本接口** 可能拿到 ** 过期数据** (旧 lastMessage、未读数未刷新)。 | ① ** 初始化会话列表** 首次登录后仅调用一次 getServerConversations,将返回结果写入全局状态管理或内存中;<br /> ②** 会话更新** 收发消息通过回调返回的消息内容更新缓存中的最新一条消息数据以及未读数; |
69- | ** 会话属性缺失** | 返回的会话对象 ** 不包含** 「用户属性(头像、昵称等)」及「群组详情(群名称、群公告等)」。 | ① 展示会话列表时先渲染 ** 会话 ID** 与 ** 最后一条消息摘要** ;<br /> ② 并行调用「用户属性/群组详情接口」补全属性,并本地缓存以避免重复请求。 |
70- | ** RESTful 消息默认不写入会话** | 通过 RESTful 发送的消息不会更新会话列表。 | 若需 RESTful 消息也能刷新会话,需在控制台开启 ** 「RESTful 消息写入会话列表」** 开关。
7163
64+ ## 接口限制与最佳实践
7265
73- :::
66+ | 限制 | 说明 | 推荐做法 |
67+ | :------------ | :--- | :------------------ |
68+ | 最新一条消息与会话未读数延迟刷新或接口调用超过限制频率 | 服务端更新为 ** 异步** 行为,收到实时消息后 ** 立即调用本接口** 可能获取到 ** 过期数据** ,即会话中的最新一条消息(` lastMessage ` )和未读数未刷新。 | 1. ** 初始化会话列表** :首次登录后仅调用一次 ` getServerConversations ` ,将返回结果写入全局状态管理或内存中。<br /> 2. ** 会话更新** :收发消息通过回调返回的消息内容更新缓存中的最新一条消息数据以及未读数。 |
69+ | 会话信息不完整| 返回的会话对象 ** 不包含** 用户属性(头像、昵称等)以及群组详情(群名称、群公告等)。 | 1. 展示会话列表时先渲染 ** 会话 ID** 与 ** 最后一条消息摘要** 。<br /> 2. 并行调用 [ 用户属性接口] ( userprofile.html#获取用户的所有属性 ) 或者 [ 群组详情接口] ( group_manage.html#获取群组详情信息 ) 完善会话信息,并且本地缓存这些信息以避免重复请求。 |
You can’t perform that action at this time.
0 commit comments