- Android
- iOS
- JavaScript
- Flutter
- ReactNative
- HarmonyOS
API Definition
/**
* Get messages sorted by message time in ascending order (oldest first and newest last). If messages are missing and the network is unavailable, cached local messages are returned.
* @param conversation conversation object
* @param direction retrieval direction
* @param options message-retrieval options
* @param callback callback
*/
void getMessages(Conversation conversation,
JIMConst.PullDirection direction,
GetMessageOptions options,
IGetMessagesCallbackV3 callback);
interface IGetMessagesCallbackV3 {
/**
* result callback
* @param messages message list
* @param timestamp message timestamp to use when retrieving the next batch
* @param hasMore whether more messages are available
* @param code result code; 0 indicates success. If code is nonzero and cached messages exist locally, messages contains those local messages
*/
void onGetMessages(List<Message> messages, long timestamp, boolean hasMore, int code);
}
Code Example
GetMessageOptions options = new GetMessageOptions();
options.setCount(100);
options.setStartTime(0);
Conversation conversation = new Conversation(Conversation.ConversationType.PRIVATE, "userid2");
JIM.getInstance().getMessageManager().getMessages(conversation, JIMConst.PullDirection.OLDER, options, new IMessageManager.IGetMessagesCallbackV3() {
@Override
public void onGetMessages(List<Message> messages, long timestamp, boolean hasMore, int code) {
Log.d("TAG", "messageList count is " + messages.size());
}
});
API Definition
/// Get messages sorted by message time in ascending order (oldest first and newest last). If messages are missing and the network is unavailable, cached local messages are returned.
/// - Parameters:
/// - conversation: conversation object
/// - direction: retrieval direction
/// - option: message-retrieval options
/// - completeBlock: messages: message list; timestamp: message timestamp to use when retrieving the next batch; hasMore: whether more messages are available;
/// code: error code (if code is nonzero and cached messages exist locally, messages contains those local messages)
- (void)getMessages:(JConversation *)conversation
direction:(JPullDirection)direction
option:(JGetMessageOptions *)option
complete:(void (^)(NSArray <JMessage *> *messages, long long timestamp, BOOL hasMore, JErrorCode code))completeBlock;
Code Example
JGetMessageOptions *options = [[JGetMessageOptions alloc] init];
options.count = 100;
options.startTime = 0;
JConversation *conversation = [[JConversation alloc] initWithConversationType:JConversationTypePrivate conversationId:@"userid2"];
[JIM.shared.messageManager getMessages:conversation
direction:JPullDirectionOlder
option:options
complete:^(NSArray<JMessage *> *messages, long long timestamp, BOOL hasMore, JErrorCode code) {
NSLog(@"getMessages count is %ld", messages.count);
}];
Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| params | Object | Yes | Message history retrieval parameters | 1.0.0 | |
| params.conversationType | Number | Yes | Conversation type | 1.0.0 | |
| params.conversationId | String | Yes | Conversation ID. For PRIVATE conversations, it is the other user's userId; for GROUP conversations, it is the group ID. | 1.0.0 | |
| params.count | Number | No | 20 | Number of message history items to retrieve. Range: 1–20. | 1.0.0 |
| params.time | Number | No | 0 | Retrieve message history starting from the specified time. It can be used to jump to a historical message and retrieve messages before and after it. | 1.0.0 |
| params.order | Number | No | BACKWARD | Message history retrieval direction. BACKWARD retrieves older message history. | 1.0.0 |
Success Callback
| Name | Type | Description | Version |
|---|---|---|---|
| result | Object | 1.0.0 | |
| result.isFinished | Boolean | Whether all message history has been retrieved | 1.0.0 |
| result.messages | Array | Message array. See the Message structure for the properties of each message. | 1.0.0 |
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;
let params = {
conversationType: ConversationType.PRIVATE,
conversationId: 'userid2'
};
jim.getMessages(params).then((result) => {
let { messages, isFinished } = result;
console.log(messages, isFinished);
}, (error) => {
console.log(error);
})
API Definition
/**
* result callback
* @param code response error code; 0 indicates success
* @param msgs message list
* @param hasMore whether more messages are available
*/
export type QryMessagesCallback = (code:number,msgs:Message[],hasMore:boolean)=>void
/**
* Get messages sorted by message time in ascending order (oldest first and newest last). If messages are missing and the network is unavailable, cached local messages are returned.
* @param conver conversation object
* @param options message-retrieval options
* @param callback callback
*/
queryMessages(conver:Conversation,options:QueryMsgOptions,callback:QryMessagesCallback)
Code Example
let options = new QueryMsgOptions()
options.count = 100
options.startTime = 0
options.isPositive = false
JuggleIm.instance.getMessageManager().queryMessages(new Conversation("userid1",1),options,(code,msgs,hasMore)=>{
})
Retrieve message history for the specified conversation. Messages can be retrieved from the latest message or before or after a specific time. Returned messages are sorted by send time in ascending order.
Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| conversation | Conversation | Yes | Conversation object. When the conversation type is 1, the conversation ID is the other user's userId; when it is 2, it is the group ID. | 1.0.0 | |
| direction | number | No | 1 | Retrieve messages sent earlier or later. | 1.0.0 |
| options | GetMessageOptions | Yes | Message history retrieval options | 1.0.0 |
GetMessageOptions Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| count | number | Yes | 20 | Number of message history items to retrieve. Range: 1–20. | 1.0.0 |
| startTime | number | No | 0 | Retrieve message history starting from the specified time. It can be used to jump to a historical message and retrieve messages before and after it. | 1.0.0 |
Code Example
import JuggleIM from 'juggleim-rnsdk';
const conversation = {
type: 1,
id: 'userId1'
};
const options = {
count: 20,
startTime: 0
};
const direction = 1;
try {
const result = await JuggleIM.getMessageList(conversation, direction, options);
console.log('hasMore:', result.hasMore);
console.log('messages:', result.messages);
} catch (error) {
console.error('getMessageList error:', error);
}
Retrieve message history for the specified conversation. Messages can be retrieved from the latest message or before or after a specific time. Returned messages are sorted by send time in ascending order.
Query Condition Parameters
GetMessageOption option = GetMessageOption();
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| option.count | int | Yes | 20 | Number of message history items to retrieve. Range: 1–20. | 0.6.3 |
| option.startTime | int | No | 0 | Retrieve message history starting from the specified time. It can be used to jump to a historical message and retrieve messages before and after it. | 0.6.3 |
Query Direction Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| direction | int | No | PullDirection.older | Retrieve messages sent earlier or later. | 0.6.3 |
Query Conversation Parameters
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| conversation | Conversation | Yes | Conversation object. When the conversation type is private, the conversation ID is the other user's userId; when it is group, it is the group ID. | 0.6.3 |
Code Example
Conversation conversation = Conversation(ConversationType.group, 'groupId1');
GetMessageOption option = GetMessageOption();
option.count = 20;
option.startTime = 0;
int direction = PullDirection.older;
GetMessageResult<List<Message>> result = await JuggleIm.instance.getMessages(conversation, direction, option);
bool hasMore = result.hasMore;
List<Message> messages = result.t as List<Message>;
Callback Parameters
| Name | Type | Description | Version |
|---|---|---|---|
| result | GetMessageResult<List<Message>> | 0.6.3 | |
| result.hasMore | bool | Whether more message history is available | 0.6.3 |
| result.t | List<Message> | Message array. See the Message structure for the properties of each message. | 0.6.3 |