更新时间: 2021-03-08
uni-app 从 sdk 3.0.5 开始适配,如需要使用,请引入 3.0.5 以上的版本
# 导入 SDK
const RongIMLib = require('./lib/RongIMLib-3.0.7.2-dev.js');
已复制
1
# SDK 下载
注: 3.x uni-app 与 Web SDK 相同
SDK 下载地址:
https://cdn.ronghub.com/RongIMLib-3.0.7.2-dev.js (opens new window)
https://cdn.ronghub.com/RongIMLib-3.0.7.2-dev.min.js (opens new window)
https://cdn.ronghub.com/RongIMLib-3.0.7.2-dev.es.js (opens new window)
# 初始化
- 请在开发功能之前从 融云开发者后台 (opens new window)注册得到的
Appkey
- 开发者在使用融云 SDK 所有功能之前,开发者必须先调用此方法初始化 SDK。 在应用整个生命周期中,开发者只需要将 SDK 初始化一次。
var im = RongIMLib.init({ appkey: ' ' });
已复制
1
2
3
2
3
# 设置监听
需先设置监听再连接服务器
var conversationList = []; // 当前已存在的会话列表 im.watch({ conversation: function(event){ var updatedConversationList = event.updatedConversationList; // 更新的会话列表 console.log('更新会话汇总:', updatedConversationList); console.log('最新会话列表:', im.Conversation.merge({ conversationList, updatedConversationList })); }, message: function(event){ var message = event.message; console.log('收到新消息:', message); }, status: function(event){ var status = event.status; console.log('连接状态码:', status); } });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 连接融云
token
即用户令牌,相当于当前用户连接融云的身份凭证。在连接融云服务器之前,需要 App Server 通过融云 Server API 获取 Token,客户端获取到这个 Token 即可连接融云服务器。
/* 开发者后台获取或 Server API */ var user = { token: 'mKmyKqTSf7aNDinwAFMnz7NXKI3dV3X0+Cd1BOxmtO2pmvsjW2HViWrePIfq0GuTu9jELQqsckv4AhfjCAKgQ==' }; im.connect(user).then(function(user) { console.log('链接成功, 链接用户 id 为: ', user.id); }).catch(function(error) { console.log('链接失败: ', error.code, error.msg); });
已复制
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 获取会话列表
该功能需开启 IM 商用版 - 单群聊云存储 (opens new window) 功能,方法同获取历史消息开通服务部分。获取会话列表需要在 connect
成功后执行。
im.Conversation.getList().then(function(conversationList) { console.log('获取会话列表成功', conversationList); });
已复制
1
2
3
2
3
# 发送消息
发送单聊文本消息需要在 connect
成功后执行。
var conversation = im.Conversation.get({ targetId: 'user1', type: RongIMLib.CONVERSATION_TYPE.PRIVATE }); conversation.send({ messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 'RC:TxtMsg' content: { content: 'Hello RongCloud' // 文本内容 } }).then(function(message){ console.log('发送文字消息成功', message); });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 接收消息
用户 B 连接服务器成功后,可通过 im.watch
中的 message
接收用户 A 发送的消息。具体可参考 设置监听
# 获取历史消息
获取历史消息需要在 connect
成功后执行。
如需从融云的服务器拉取历史消息,需要开通 IM 商用版 - 单群聊云存储 (opens new window) 功能。
var conversation = im.Conversation.get({ targetId: 'user1', type: RongIMLib.CONVERSATION_TYPE.PRIVATE }); var option = { timestrap: +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
2
3
4
5
6
7
8
9
10
11
12
13
# 断开连接
- 断开当前用户连接. 调用后不再接收消息, 不可发送消息, 不可获取历史消息, 不可获取会话列表
- 在下次连接融云成功后,会收取上次离线后的消息,离线消息最多可以保存 7 天。
im.disconnect().then(function() { console.log('断开链接成功'); });
已复制
1
2
3
2
3