文档导航
Web
SDK 版本:  4.X
您当前查看的是 4.X 版本 SDK 文档。如需查看最新 5.X SDK 文档,可在右侧进行切换。

升级说明

更新时间:2024-01-16 PDF
  • 本文面向 IMLib v3/v4 开发者,旨在为 IMLib 开发者升级至 v4-adapter 提供引导。
  • 对于使用 IMLib v2 的用户来说,不建议升级至 v4-adapter 版本。

关于停止维护 IMLib v4 旧版 SDK 的声明

注意:

  • Web IMLib v4 版本目前已停止维护,建议您优先选择最新的 IMLib 版本。
  • 已集成 IMLib v4 版本的用户,转为使用 Adapter 方式进行支持。集成旧版 4x SDK 的客户可以通过 RongIMLib-v4-Adapter 无缝替换升级。详见 升级说明
  • 未来我们将在 RongIMLib-v4-Adapter 上进行问题修复,但不会增加新功能。

IMLib 4.x 替换为 v4-adapter

浏览器兼容性

Chrome Firefox Safari Edge QQ 浏览器 微信 浏览器 Android IE
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ 4.4+ 9+

引入 SDK

修改 NPM 包

@rongcloud/imlib-v4 包已停止维护,请使用 @rongcloud/imlib-v4-adapter 替代。

  1. 依赖安装

    # 移除旧版本依赖
    npm rm @rongcloud/imlib-v4 @rongcloud/engine
    # 安装 adapter-v4
    npm install @rongcloud/engine@latest @rongcloud/imlib-v4-adapter@latest -S
                  
    已复制
    1
    2
    3
    4

  2. 代码集成

    // CMD
    // const RongIMLib = require('@rongcloud/imlib-v4') 需修改为
    const RongIMLib = require('@rongcloud/imlib-v4-adapter')
    
    // ES
    // import * as RongIMLib from '@rongcloud/imlib-v4' 需修改为
    import * as RongIMLib from '@rongcloud/imlib-v4-adapter'
    
                  
    已复制
    1
    2
    3
    4
    5
    6
    7
    8

修改 CDN 引入链接

RongIMLib-4.x.x.prod.js SDK 已停止维护,请使用 RongIMLib-v4-Adapter 的最新版本替代。

RongIMLib-v4-Adapter 的最新版本可参见引入 SDK

IMLib 3.x 升级 v4-adapter

引入 SDK

修改 NPM 包

  1. 依赖安装

    npm install @rongcloud/engine@latest @rongcloud/imlib-v4-adapter@latest -S
                  
    已复制
    1

  2. 代码集成

    // CMD
    const RongIMLib = require('@rongcloud/imlib-v4-adapter')
    
    // ES
    import * as RongIMLib from '@rongcloud/imlib-v4-adapter'
    
                  
    已复制
    1
    2
    3
    4
    5
    6

修改 CDN 引入链接

RongIMLib-3.x.x.prod.js SDK 已停止维护,请使用 RongIMLib-v4-Adapter 的最新版本替代。

RongIMLib-v4-Adapter 的最新版本可参见引入 SDK

接口变更

发送自定义消息

变更流程说明

发送自定义消息由直接发送变更为:先注册自定义消息再发送自定义消息,详细如下

  1. 注册自定义消息
警告
  • 注册自定义消息代码必须在发送、接收该自定义消息之前
  • 推荐将所有注册自定义消息代码放在 init 方法之后, connect 方法之前
  • 注册的消息类型名, 必须多端一致, 否则消息无法互通
  • 请勿使用 RC: 开头的类型名,以免和 SDK 默认的消息名称冲突

代码示例

// 初始化 IM
var config = {
  appkey: ' ',
};
var im = RongIMLib.init(config);

// 注册自定义消息
var messageType = 's:person'; // 自定义消息类型
var isPersited = true; // 自定义消息存储属性
var isCounted = true;  // 自定义消息计数属性
im.registerMessageType(messageType, isPersited, isCounted);
              
已复制
1
2
3
4
5
6
7
8
9
10
11

  1. 发送自定义消息

代码示例

var conversation = im.Conversation.get({
  targetId: '接收方的 userId',
  type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
  messageType: 's:person', // 填写开发者定义的 messageType
  content: { // 填写开发者定义的消息内容
    name: 'RongCloud',
    age: 12
  }
}).then(function(message){
  console.log('发送 s:person 消息成功', message);
});
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13

自定义消息存储、计数属性说明

发消息:

  1. 是否是内置消息,内置消息以内置消息的存储、计数配置为准
  2. 是否是已注册的消息,已注册的消息以注册时的存储、计数配置为准
  3. 其他消息,以消息发送接口传参为准,未传 isCountedisPersited 时均默认为 false

收消息:

  1. 是否是内置消息,内置消息以内置消息的存储、计数配置为准
  2. 是否是已注册消息,已注册的消息以注册时的存储、计数配置为准
  3. 其他消息,以接收的服务器数据为准

发送 @ 消息

变更输入参数说明

废弃参数 当前参数 类型 必填 默认值 说明 最低版本
isMentioned isMentioned Boolean false 是否为 @ 消息 4.0.0
mentionedType mentionedType Number 1 @ 类型 1: @ 所有人 2: @ 指定用户 4.0.0
mentionedUserIdList mentionedUserIdList Array -- @ 用户 id 列表 4.0.0

代码示例

var conversation = im.Conversation.get({
  targetId: '群组 ID',
  type: RongIMLib.CONVERSATION_TYPE.GROUP
});
conversation.send({
  messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 填写开发者定义的 messageType
  content: {
    content: 'Hello RongCloud' // 文本内容
  },
  isMentioned: true,
  mentionedType: RongIMLib.MENTIONED_TYPE.ALL,
  mentionedUserIdList:['user1']
}).then(function(message){
  console.log('发送消息成功', message);
});

              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

获取历史消息

  1. 单聊、群聊获取历史消息

变更输入参数说明

废弃参数 当前参数 类型 必填 默认值 说明 最低版本
timestamp timestamp Number 0 获取时间戳. 0 为从当前最新时间拉取 4.0.0

代码示例

var conversation = im.Conversation.get({
  targetId: '接收方的 userId',
  type: RongIMLib.CONVERSATION_TYPE.PRIVATE // 群聊可传入 RongIMLib.CONVERSATION_TYPE.GROUP
});
var option = {
  timestamp: +new Date(), // 获取时间戳
  count: 20 // 获取条数
};
conversation.getMessages(option).then(function(result){
  var list = result.list; // 历史消息列表
  var hasMore = result.hasMore; // 是否还有历史消息可以获取
  console.log('获取历史消息成功', list, hasMore);
});

              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14

变更回调参数 list.message 属性说明

废弃字段 当前字段名 类型 说明
isMentioned isMentioned Boolean 是否为 @ 消息
  1. 聊天室获取历史消息

变更输入参数说明

废弃参数 当前参数 类型 必填 默认值 说明 最低版本
timestamp timestamp Number 0 获取时间戳. 0 为从当前最新时间拉取 4.0.0

代码示例

var chatRoom = im.ChatRoom.get({
  id: 'chatRoom1'
});
var option = {
  timestamp: +new Date(), // 获取时间戳
  count: 20 // 获取条数
};
chatRoom.getMessages(option).then(function(result){
  var list = result.list; // 历史消息列表
  var hasMore = result.hasMore; // 是否还有历史消息可以获取
  console.log('获取聊天室历史消息成功', list, hasMore);
});
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12

变更回调参数 list.message 属性说明

废弃字段 当前字段 类型 说明
isMentioned isMentioned Boolean 是否为 @ 消息

获取会话列表

变更回调参数 conversationList.conversation 属性说明

废弃字段 当前字段 类型 说明
hasMentioned hasMentioned Boolean 是否包含 @ 自己的消息
isMentioned isMentioned Boolean 是否为 @ 消息
mentionedInfo mentionedInfo Object @ 信息

废弃属性

非标准接口

旧版本 SDK 顶级变量下暴露了 SDK 内部使用的部分接口,不建议开发者直接持有引用,具体如下:

  • RongIMLib.Logger 日志上传接口
  • RongIMLib.common 公共方法集
  • RongIMLib.env 环境配置
文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈