-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
187 lines (163 loc) · 6.63 KB
/
index.js
File metadata and controls
187 lines (163 loc) · 6.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
import {
NativeModules,
DeviceEventEmitter
} from 'react-native';
const RongCloudIMLib = NativeModules.RongCloudIMLibModule;
const RongCloudDiscLib = NativeModules.RongCloudDiscLibModule;
var _onRongCloudMessageReceived = function(resp) {
}
DeviceEventEmitter.addListener('onRongCloudMessageReceived', resp => {
typeof _onRongCloudMessageReceived === 'function' && _onRongCloudMessageReceived(resp);
});
const ConversationType = {
PRIVATE: 'PRIVATE',
DISCUSSION: 'DISCUSSION',
SYSTEM: 'SYSTEM'
};
export default {
ConversationType: ConversationType,
onReceived (callback) {
_onRongCloudMessageReceived = callback;
},
initWithAppKey (appKey) {
return RongCloudIMLib.initWithAppKey(appKey);
},
connectWithToken (token) {
return RongCloudIMLib.connectWithToken(token);
},
/*!
断开连接
@param isReceivePush [true|false] App在断开连接之后,是否还接收远程推送.
[[RCIM sharedRCIM] disconnect:YES]与[[RCIM sharedRCIM] disconnect]完全一致;
[[RCIM sharedRCIM] disconnect:NO]与[[RCIM sharedRCIM] logout]完全一致.
因此只封装disconnect:方法,通过传入参数来判断是否仍然接受推送信息。
*/
disconnect(isReceivePush) {
return RongCloudIMLib.disconnect(isReceivePush);
},
//获得会话列表
getConversationList (){
return RongCloudIMLib.getConversationList();
},
//获得会话中的聊天信息
getRemoteHistoryMessages(RCConversationType, targetId, recordTime, count){
return RongCloudIMLib.getRemoteHistoryMessages(RCConversationType, targetId, recordTime, count);
},
/*!
获取会话中,从指定消息之前、指定数量的最新消息实体
@param conversationType 会话类型
@param targetId 目标会话ID
@param oldestMessageId 截止的消息ID
@param count 需要获取的消息数量
@return 消息实体RCMessage对象列表
@discussion 此方法会获取该会话中,oldestMessageId之前的、指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。
返回的消息中不包含oldestMessageId对应那条消息,如果会话中的消息数量小于参数count的值,会将该会话中的所有消息返回。
如:
oldestMessageId为10,count为2,会返回messageId为9和8的RCMessage对象列表。
*/
getHistoryMessages(conversationType, targetId, oldestMessageId, count){
return RongCloudIMLib.getHistoryMessages(conversationType, targetId, oldestMessageId, count);
},
/*!
获取某个会话中指定数量的最新消息实体
@param conversationType 会话类型
@param targetId 目标会话ID
@param count 需要获取的消息数量
@return 消息实体RCMessage对象列表
@discussion 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。
如果会话中的消息数量小于参数count的值,会将该会话中的所有消息返回。
*/
getLatestMessages(conversationType, targetId, count){
return RongCloudIMLib.getLatestMessages(conversationType, targetId, count);
},
//发送消息
sendTextMessage (conversationType, targetId, content) {
return RongCloudIMLib.sendTextMessage(conversationType, targetId, content, content);
},
//发送图片信息
sendImageMessage(conversationType, targetId, imagePath){
if(imagePath.startsWith('file://')){
imagePath = imagePath.substr(7);
}
return RongCloudIMLib.sendImageMessage(conversationType, targetId, imagePath, '[图片]');
},
/*!
获取所有未读消息数量
*/
getTotalUnreadCount(){
return RongCloudIMLib.getTotalUnreadCount();
},
/*!
获取某个会话中的未读消息数量
@param conversationType 会话类型
@param targetId 目标会话ID
*/
getUnreadCount(conversationType, targetId){
return RongCloudIMLib.getUnreadCount(conversationType, targetId);
},
/*!
清除某个会话中的所有未读消息数量
@param conversationType 会话类型
@param targetId 目标会话ID
*/
clearMessagesUnreadStatus(conversationType, targetId){
return RongCloudIMLib.clearMessagesUnreadStatus(conversationType, targetId);
},
/*!
创建讨论组
@param name 讨论组名称
@param userIdList 用户ID的列表
@discussion 设置的讨论组名称长度不能超过40个字符,否则将会截断为前40个字符。
*/
createDiscussion(discName, userIdList){
return RongCloudDiscLib.createDiscussion(discName, userIdList);
},
/*!
讨论组加人,将用户加入讨论组
@param discussionId 讨论组ID
@param userIdList 需要加入的用户ID列表
*/
addMemberToDiscussion(discussionId, userIdList){
return RongCloudDiscLib.addMemberToDiscussion(discussionId, userIdList);
},
/*!
讨论组踢人,将用户移出讨论组
@param discussionId 讨论组ID
@param userId 需要移出的用户ID
*/
removeMemberFromDiscussion(discussionId, userId){
return RongCloudDiscLib.removeMemberFromDiscussion(discussionId, userId);
},
/*!
退出当前讨论组
@param discussionId 讨论组ID
*/
quitDiscussion(discussionId){
return RongCloudDiscLib.quitDiscussion(discussionId);
},
/*!
获取讨论组的信息
@param discussionId 需要获取信息的讨论组ID
*/
getDiscussion(discussionId){
return RongCloudDiscLib.getDiscussion(discussionId);
},
/*!
设置讨论组名称
@param targetId 需要设置的讨论组ID
@param discussionName 需要设置的讨论组名称,discussionName长度<=40
*/
setDiscussionName(targetId, name){
return RongCloudDiscLib.setDiscussionName(targetId, name);
},
/*!
设置讨论组是否开放加人权限
@param targetId 讨论组ID
@param isOpen 是否开放加人权限
@discussion 讨论组默认开放加人权限,即所有成员都可以加人。
如果关闭加人权限之后,只有讨论组的创建者有加人权限。
*/
setDiscussionInviteStatus(targetId, isOpen){
return RongCloudDiscLib.setDiscussionInviteStatus(targetId, isOpen);
}
};