- Android
- iOS
- JavaScript
- Flutter
- ReactNative
- HarmonyOS
Mark as Read
Conversation conversation = new Conversation(Conversation.ConversationType.PRIVATE, "userid2");
List<String> messageIds = new ArrayList<>(2);
messageIds.add("messageId1");
messageIds.add("messageId2");
JIM.getInstance().getMessageManager().sendReadReceipt(conversation, messageIds, new IMessageManager.ISendReadReceiptCallback() {
@Override
public void onSuccess() {
Log.d("TAG", "send read receipt success");
}
@Override
public void onError(int errorCode) {
Log.e("TAG", "send read receipt error, code is " + code);
}
});
Get Group Read State
/**
* get group-message read status
* @param conversation conversation containing the message
* @param messageId ID of the group message to query
* @param callback result callback
*/
void getGroupMessageReadDetail(Conversation conversation,
String messageId,
IGetGroupMessageReadDetailCallback callback);
Mark as Read
JConversation *c = [[JConversation alloc] initWithConversationType:JConversationTypeGroup conversationId:@"groupid1"];
NSArray *messageIds = @[@"messageId1", @"messageId2"];
[JIM.shared.messageManager sendReadReceipt:messageIds
inConversation:c
success:^{
NSLog(@"sendReadReceipt success");
} error:^(JErrorCode code) {
NSLog(@"sendReadReceipt error, code is %d", code);
}];
Get Group Read State
/// get group-message read status
/// - Parameters:
/// - messageId: ID of the group message to query
/// - conversation: conversation containing the message
/// - successBlock: Success callback. readMemberIds contains the list of users who have read the message, and unreadMemberIds contains the list of users who have not.
/// - errorBlock: failure callback
- (void)getGroupMessageReadDetail:(NSString *)messageId
inConversation:(JConversation *)conversation
success:(void (^)(NSArray<JUserInfo *> *readMembers, NSArray<JUserInfo *> *unreadMembers))successBlock
error:(void (^)(JErrorCode code))errorBlock;
Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| message | Object | Yes | Message object | 1.0.0 | |
| message.conversationType | Number | Yes | Conversation type | 1.0.0 | |
| message.conversationId | String | Yes | Conversation ID. For PRIVATE conversations, it is the recipient userId; for GROUP conversations, it is the group ID. | 1.0.0 | |
| message.messageId | String | Yes | Message UID | 1.0.0 | |
| message.unreadIndex | Number | Yes | Message index. Available from message.messageIndex. | 1.0.0 |
Success Callback
No parameters are returned. The callback indicates success when invoked.
Failure Callback
| Name | Type | Description | Version |
|---|---|---|---|
| error | Object | A status code is provided when sending fails. Check error.msg directly or see status codes. | 1.0.0 |
Code Example
let { ConversationType } = JIM;
// Method 1: Mark a single message as read
let message = {
conversationType: ConversationType.GROUP,
conversationId: 'groupid1',
messageId: 'xxxdkadhdsa',
unreadIndex: 1
};
jim.readMessage(message).then(() => {
console.log('read message successfully.')
}, (error) => {
console.log(error)
});
// Method 2: Mark multiple messages as read
let msgs = [
{
conversationType: ConversationType.GROUP,
conversationId: 'groupid1',
messageId: 'xxxdkadhdsa',
unreadIndex: 2
}
];
jim.readMessage(msgs).then(() => {
console.log('read message successfully.')
}, (error) => {
console.log(error)
});
Parameters
| Name | Type | Description | Version |
|---|---|---|---|
| conver | Conversation | Conversation that contains the message | 1.0.0 |
| msgIds | string[] | List of message IDs for which to send read receipts | 1.0.0 |
| callback | CommonCallback | Callback | 1.0.0 |
Code Example
let conver = new Conversation("userid1",1)
JuggleIm.instance.getMessageManager().sendReadReceipt(conver,["message_id"],(code)=>{
})
Parameters
| Name | Type | Description | Version |
|---|---|---|---|
| conversation | Conversation | Conversation identifier | 1.0.0 |
| messageIds | string[] | List of message IDs for which to send read receipts | 1.0.0 |
Code Example
import JuggleIM from 'juggleim-rnsdk';
const conversation = {
type: 1,
id: 'userId1'
};
const messageIds = ['messageId1', 'messageId2'];
JuggleIM.sendReadReceipt(conversation, messageIds).then((success) => {
console.log('sendReadReceipt success:', success);
});