Extensions on
V2TIMManager
Methods
addConversationListener(listener:)
public func addConversationListener(listener: V2TIMConversationListener)
1.1 Add the conversation listener
removeConversationListener(listener:)
public func removeConversationListener(listener: V2TIMConversationListener)
1.2 Remove the conversation listener
getConversationList(nextSeq:count:succ:fail:)
public func getConversationList(nextSeq: UInt, count: Int32, succ: @escaping V2TIMConversationResultSucc, fail: @escaping V2TIMFail)
1.3 Get the conversation list
-
Each conversation corresponds to a chat window. For example, a one-to-one chat or a chat group is a conversation.
-
Since there may be a large number of historical conversations, you are advised to call this API in query-by-page mode and pull 100 historical conversations per page at a time.
-
This API pulls locally cached conversations. If conversations on the server are updated, the SDK automatically synchronizes the updates internally and then notifies users via @ref V2TIMConversationListener callback.
-
If all conversations are pulled, the value of the isFinished field in V2TIMConversationResult in the success callback is true.
-
For 5.5.892 and later versions, conversations on the conversion list obtained by this API are sorted by orderKey by default. The larger the orderKey value, the higher the order of the conversation.
-
For versions earlier than 5.5.892, conversations on the conversion list obtained by this API are sorted by "lastMessage -> timestamp" by default. The later the timestamp, the higher the order of the conversation.
Parameters
Name | Type | Description |
---|---|---|
nextSeq | UInt |
Pulling-by-page cursor. It is set to 0 when the information is pulled for the first time. The value of this field in the callback for the current paginated pulling is passed in for the next pull. |
count | Int32 |
Number of conversations pulled per page. The value of this field cannot be too large; otherwise, the pulling speed is affected. We recommend that you pull 100 conversations per page. |
getConversation(conversationID:succ:fail:)
public func getConversation(conversationID: String, succ: @escaping V2TIMConversationSucc, fail: @escaping V2TIMFail)
1.4 Get a single conversation
Parameters
Name | Type | Description |
---|---|---|
conversationID | String |
Unique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
getConversationList(conversationIDList:succ:fail:)
public func getConversationList(conversationIDList: Array<String>, succ: @escaping V2TIMConversationListSucc, fail: @escaping V2TIMFail)
1.5 Get a specified conversation list
Parameters
Name | Type | Description |
---|---|---|
conversationIDList | Array<String> |
List of the unique IDs of conversations. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
getConversationListByFilter(filter:nextSeq:count:succ:fail:)
public func getConversationListByFilter(filter: V2TIMConversationListFilter, nextSeq:UInt, count:UInt, succ: @escaping V2TIMConversationResultSucc, fail: @escaping V2TIMFail)
1.6 Get the conversation list (advanced API,supported only in 6.5 and later versions)
Parameters
Name | Type | Description |
---|---|---|
filter | V2TIMConversationListFilter |
The conversation filter |
nextSeq | UInt |
The pulling-by-page cursor |
count | UInt |
Number of conversations to be pulled per page |
deleteConversation(conversation:succ:fail:)
public func deleteConversation(conversation: String, succ: V2TIMSucc?, fail: V2TIMFail?)
1.7 Delete a conversation
-
When a conversation is deleted from local storage, it is also deleted from the server.
-
When messages in a conversation are deleted from local storage, they are also deleted from the server.
Parameters
Name | Type | Description |
---|---|---|
conversationID | Unique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
deleteConversationList(conversationIDList:clearMessage:succ:fail:)
public func deleteConversationList(conversationIDList: Array<String>, clearMessage: Bool, succ: V2TIMConversationOperationResultSucc?, fail: V2TIMFail?)
1.8 Delete a list of conversations (Supported only in 7.1 and later versions)
Parameters
Name | Type | Description |
---|---|---|
conversationIDList | Array<String> |
List of the unique IDs of conversations. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
clearMessage | Bool |
Whether to delete messages in the conversation; if this is set to false, the messages are retained; if this is set to true, the messages will be deleted from local storage and the server and cannot be recovered. |
setConversationDraft(conversationID:draftText:succ:fail:)
public func setConversationDraft(conversationID: String, draftText: String?, succ: V2TIMSucc?, fail: V2TIMFail?)
1.9 Set a draft for a conversation
Parameters
Name | Type | Description |
---|---|---|
conversationID | String |
Unique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
draftText | String? |
Draft content. The value null indicates cancelling the draft. |
setConversationCustomData(conversationIDList:customData:succ:fail:)
public func setConversationCustomData(conversationIDList: Array<String>, customData: Data?, succ: V2TIMConversationOperationResultSucc?, fail: V2TIMFail?)
1.10 Set conversation custom data(supported only in 6.5 and later versions)
Parameters
Name | Type | Description |
---|---|---|
customData | Data? |
Custom data (max 256 bytes) |
pinConversation(conversationID:isPinned:succ:fail:)
public func pinConversation(conversationID: String, isPinned: Bool, succ: V2TIMSucc?, fail: V2TIMFail?)
1.11 Pin a conversion to the top (supported only in 5.3.425 and later versions)
Parameters
Name | Type | Description |
---|---|---|
conversationID | String |
Unique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
isPinned | Bool |
Whether to pin a conversation to the top |
markConversation(conversationIDList:markType:enableMark:succ:fail:)
public func markConversation(conversationIDList: Array<String>, markType: V2TIMConversationMarkType, enableMark: Bool, succ: V2TIMConversationOperationResultSucc?, fail: V2TIMFail?)
1.12 Mark a conversation(supported only in Chat Premium 6.5 and later versions)
If existing marks do not meet your needs, you can customize extension marks. Extension marks need to meet the following two conditions:
1、Extended mark values must not conflict with existing mark values in TIIMConversationMarkType.
2、Extended mark values must be a 0x1L << n (32 <= n < 64, that is, n must be greater than or equal to 32 and less than 64). For example, you can use the extension mark "0x1L << 32" to mean "iPhone online". - Parameters: - conversationIDList : conversation list - markType : mark type of the conversation. For the valid values, see the V2TIMConversationMarkType definition. - enableMark : true:mark false:unmark - Warning: The extension mark value cannot be set to 0x1 << 32, it must be set to 0x1LL << 32, which explicitly tells the compiler that it is a 64-bit integer constant.
getTotalUnreadMessageCount(succ:fail:)
public func getTotalUnreadMessageCount(succ: @escaping V2TIMTotalUnreadMessageCountSucc, fail: @escaping V2TIMFail)
1.13 Get the total message unread count in conversations (supported only in 5.3.425 and later versions)
-
After you call this API to obtain the total count of unread messages for all conversations, the newest value will be notified to you through the onTotalUnreadMessageCountChanged callback when unread message count of any conversation changed.
-
The total unread message count excludes muted conversations (conversations whose message receiving option is V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT).
getUnreadMessageCountByFilter(filter:succ:fail:)
public func getUnreadMessageCountByFilter(filter: V2TIMConversationListFilter, succ: @escaping V2TIMTotalUnreadMessageCountSucc, fail: @escaping V2TIMFail)
1.14 Get the total message unread count of conversations by filter (supported only in 7.0 and later versions)
-
The total unread message count excludes muted conversations (conversations whose message receiving option is V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT).
Parameters
Name | Type | Description |
---|---|---|
filter | V2TIMConversationListFilter |
conversation filter |
subscribeUnreadMessageCountByFilter(filter:)
public func subscribeUnreadMessageCountByFilter(filter: V2TIMConversationListFilter)
1.15 Subscribe to changes in the total unread message count for specified conversations (supported only in 7.0 and later versions)
-
After you call this API, the newest value of total unread message count for conversations that match the filter parameter will be notified to you through the onUnreadMessageCountChangedByFilter callback.
Parameters
Name | Type | Description |
---|---|---|
filter | V2TIMConversationListFilter |
conversation filter |
unsubscribeUnreadMessageCountByFilter(filter:)
public func unsubscribeUnreadMessageCountByFilter(filter: V2TIMConversationListFilter)
1.16 Unsubscribe from changes in the total unread message count for specified conversations (supported only in 7.0 and later versions)
Parameters
Name | Type | Description |
---|---|---|
filter | V2TIMConversationListFilter |
conversation filter |
cleanConversationUnreadMessageCount(conversationID:cleanTimestamp:cleanSequence:succ:fail:)
public func cleanConversationUnreadMessageCount(conversationID: String?, cleanTimestamp: UInt64, cleanSequence: UInt64, succ: V2TIMSucc?, fail: V2TIMFail?)
1.17 Clear unread messages of a conversation (supported only in 7.1 and later versions)
-
If you want to clear the unread messages of all a one-to-one conversation, set conversationID to "c2c", i.e., don't specify the userID.
-
If you want to clear the unread messages of all group conversations, set conversationID to "group", i.e., don't specify the groupID.
-
If you want to clear the unread messages of all conversations, set conversationID to "" or nil.
-
After the API is successfully called, you will receive the onConversationChanged callback that carries the latest unread message number of the corresponding conversation.
Parameters
Name | Type | Description |
---|---|---|
conversationID | String? |
Unique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID"). |
cleanTimestamp | UInt64 |
The timestamp (seconds) for clearing unread messages (only valid for one-to-one chats). Unread messages before the timestamp will be cleared. If the value is 0, all unread messages of the specified conversation will be cleared, and the unread message count will be set to 0. |
cleanSequence | UInt64 |
The sequence for clearing unread messages (only valid for group chats). Unread messages before the specified message sequence will be cleared. If the value is 0, all unread messages of the specified conversation will be cleared, and the unread message count will be set to 0. |
createConversationGroup(groupName:conversationIDList:succ:fail:)
public func createConversationGroup(groupName: String, conversationIDList: Array<String>, succ: @escaping V2TIMConversationOperationResultSucc, fail: @escaping V2TIMFail)
2.1 Create a conversation group.
Parameters
Name | Type | Description |
---|---|---|
groupName | String |
group name(Required, length must be greater than 0, max 32 bytes) |
conversationIDList | Array<String> |
conversation ID list(Required, cannot be empty) |
getConversationGroupList(succ:fail:)
public func getConversationGroupList(succ: @escaping V2TIMConversationGroupListSucc, fail: @escaping V2TIMFail)
2.2 Get a list of conversation groups.
deleteConversationGroup(groupName:succ:fail:)
public func deleteConversationGroup(groupName: String, succ: V2TIMSucc?, fail: V2TIMFail?)
2.3 Delete a conversation group.
renameConversationGroup(oldName:newName:succ:fail:)
public func renameConversationGroup(oldName: String, newName: String, succ: V2TIMSucc?, fail: V2TIMFail?)
2.4 Rename a conversation group.
addConversationsToGroup(groupName:conversationIDList:succ:fail:)
public func addConversationsToGroup(groupName: String, conversationIDList: Array<String>, succ: V2TIMConversationOperationResultSucc?, fail: V2TIMFail?)
2.5 Add conversations to a group.
deleteConversationsFromGroup(groupName:conversationIDList:succ:fail:)
public func deleteConversationsFromGroup(groupName: String, conversationIDList: Array<String>, succ: V2TIMConversationOperationResultSucc?, fail: V2TIMFail?)
2.6 Remove conversations from a group.