|
inlinevirtual |
|
pure virtual |
1.1 Add an event listener for advanced messages
|
pure virtual |
1.2 Remove the event listener for advanced messages
|
pure virtual |
2.1 Create a text message
|
pure virtual |
2.2 Create a text message with the mentioning(@) feature
You can mention someone only in group chats.
atUserList | List of @ target users. To @all, please pass in the kImSDK_MesssageAtALL constant string. For example, if you want the current text message to @denny, @lucy, and @all, pass in ["denny","lucy",kImSDK_MesssageAtALL] for atUserList. |
|
pure virtual |
2.3 Create a custom message
|
pure virtual |
2.4 Create a custom message and set offline push information
description | Custom message description to be displayed for offline push |
extension | Extension field for offline push |
|
pure virtual |
2.5 Create an image message (image size limit: 28 MB)
|
pure virtual |
2.6 Create a voice message (voice size limit: 28 MB)
duration | Voice duration, in seconds |
|
pure virtual |
2.7 Create a video message (video size limit: 100 MB)
type | Video type, such as mp4 and mov |
duration | Video duration, in seconds |
snapshotPath | Video cover image path |
|
pure virtual |
2.8 Create a file message (file size limit: 100 MB)
|
pure virtual |
2.9 Create a location message
|
pure virtual |
2.10 Create an emoji message
The Chat SDK does not provide an emoji package. Developers can use index to store the indexes of the emojis they have in their emoji packages. Alternatively, they can directly use data to store emoji binary data and the string key. Either way, developers can customize emojis. The Chat SDK is only responsible for passing them through.
index | Emoji index |
data | Custom data |
|
pure virtual |
2.11 Create a combined message (supported only in 5.2.210 and later versions)
A typical combined message looks like this on the UI:
|Chat History of Vinson and Lynx | – title
|Vinson: When is the new version of SDK scheduled to go online? | – abstract1
|Lynx: Next Monday. The specific time depends on the system test result in these two days. | – abstract2
|Vinson: OK | – abstract3
The chat UI usually displays only the title and abstract of the combined message. The complete combined message list will be displayed only when the user clicks the combined message on the UI.
You can create a combined message (V2TIMMessage) for multiple messages to be forwarded and call the sendMessage API to send the combined message. The procedure is as follows:
1. Call createMergerMessage to create a combined message V2TIMMessage.
2. Call sendMessage to send the forward V2TIMMessage.
The procedure for parsing a combined message received is as follows:
1. Obtain mergerElem via V2TIMMessage.
2. Obtain title and abstractList via mergerElem for UI display.
3. When the user clicks the combined message on the UI, call downloadMessageList to get the list of forwarded messages.
messageList | Message list (Up to 300 messages are supported. The message object must be in the V2TIM_MSG_STATUS_SEND_SUCC status. The message type cannot be V2TIMGroupTipsElem.) |
title | Source of the combined message, for example, "Chat History of Vinson and Lynx" and "xxx group chat history" |
abstractList | Combined message abstract list (supports up to 5 abstracts, each containing a maximum of 100 characters). You can use different abstract formats for different message types. For example, for a text message, the format can be "sender:text" format. For an image message, the format can be "sender:[image]". For a file message, the format can be in the "sender:[file]". |
compatibleText | Text to be displayed if the SDK version does not support combined messages. This parameter cannot be null. |
|
pure virtual |
2.12 Create a forward message (supported only in 5.2.210 and later versions)
If you need to forward a message, you cannot directly call the sendMessage API to send the original message. Instead, you need to call createForwardMessage to create a forward message first and send it.
message | Message object to be forwarded. The message status must be V2TIM_MSG_STATUS_SEND_SUCC. The message type cannot be V2TIMGroupTipsElem. |
|
pure virtual |
2.13 Create a targeted group message(supported only in 6.0 and later versions)
If you need to send a message to a specified group member list within a group, you can create a targeted group message. Only the specified group member can receive the targeted group message.
message | Original message object |
receiverList | Message receivers |
|
pure virtual |
2.14 Create a group message that mentions others(supported only in 7.0 and later versions)
If you need to send a group message with the mentioning (@) feature, use this API to create a message.
message | Original message object |
atUserList | List of @ target users. To @all, please pass in the kImSDK_MesssageAtALL constant string. For example, if you want the current message to @denny, @lucy, and @all, pass in @["denny", @"lucy", kImSDK_MesssageAtALL] for atUserList. |
|
pure virtual |
3.1 Send an advanced message (advanced version: provides the features of specifying message priorities and push information)
message | Message object to be sent, which needs to be created via the corresponding message creation API |
receiver | Message recipient's userID. For a one-to-one message, you only need to specify this field. |
groupID | Target group ID. For a group chat message, you only need to specify this field. |
priority | Message priorities. This field is valid only for group chat messages. You are advised to set higher priorities for important messages (such as red packet and gift messages) and set lower priorities for frequent but unimportant messages (such as like messages). |
onlineUserOnly | Whether the message can be received only by online users. If this field is set to true, the message will not appear in the recipient's historical message list. This field is often used to implement less important notifications such as typing indicators. This field is not supported by audio-video groups (AVChatRoom). |
offlinePushInfo | Title and voice carried when the message pushing offline. |
|
pure virtual |
4.1 Set the one-to-one message receiving option for specified users (batch setting supported)
Supported only in 5.3.425 and later versions.
opt | There are three message receiving options: V2TIMMessage.V2TIM_RECEIVE_MESSAGE: messages will be received when the user is online, and push notifications will be received when the user is offline. V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE: no message will be received. V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE: messages will be received when the user is online, and no push notification will be received when the user is offline. |
|
pure virtual |
4.2 Query the one-to-one message receiving option for specified users
Supported only in 5.3.425 and later versions.
|
pure virtual |
4.3 Set the group message receiving option
opt | There are five message receiving options: V2TIMMessage.V2TIM_RECEIVE_MESSAGE: messages will be received when the user is online, and push notifications will be received when the user is offline. V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE: no group message will be received. V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE: messages will be received when the user is online, and no push notification will be received when the user is offline. V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT: messages will be received when the user is online, and no push notification will be received when the user is offline but except @ message. V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE_EXCEPT_AT: only receive @ messages. |
|
pure virtual |
4.4 Set message receiving option for all conversations,supported only in 7.4 and later versions.
opt | There are two message receiving options for you to choose: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:messages will be received when the user is online, and notifications will be received when the user is offline. V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:messages will be received when the user is online, and no push notification will be received when the user is offline.(you can use this to mute group chat notifications) |
startHour | (0 - 23) The starting hour of the muting duration |
startMinute | (0 - 59) The starting minute of the muting duration |
startSecond | (0 - 59) The starting second of the muting duration |
duration | (0 - 24*60*60) The muting duration in seconds |
|
pure virtual |
4.5 Set message receiving option for all conversations,supported only in 7.4 and later versions.
opt | There are two message receiving options for you to choose: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:messages will be received when the user is online, and notifications will be received when the user is offline. V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:messages will be received when the user is online, and no push notification will be received when the user is offline.(you can use this to mute group chat notifications) |
startTimeStamp | The start time of muting, UTC timestamp, unit: second |
duration | The muting duration in seconds |
|
pure virtual |
4.5 Get all Message receiving option,supported only in 7.4 and later versions.
|
pure virtual |
5.1 Get historical messages (advanced API)
option | Message pulling option, which can be set to pull older or newer messages from local storage or the cloud |
|
pure virtual |
5.2 Recall messages
|
pure virtual |
5.3 Modify a message
|
pure virtual |
5.4 Delete messages from local storage and the cloud
|
pure virtual |
5.5 Clear chat history with a user from local storage and the cloud (without deleting the conversation)
Supported only in 5.4.666 and later versions.
|
pure virtual |
5.6 Clear chat history of a group from local storage and the cloud (without deleting the conversation)
Supported only in 5.4.666 and later versions.
|
pure virtual |
5.7 Add a message to the group message list
This API is mainly used to insert informative messages in a group chat, such as "you have exited the group". Such messages are shown to the local user but not sent to others. In this sense, insertGroupMessageToLocalStorage() is sendMessage() API with the message delivery feature disabled.
|
pure virtual |
5.8 Insert a message in a one-to-one chat
This API is mainly used to insert informative messages in a one-to-one, such as "you have successfully sent the message". Such messages are shown to the local user but not sent to the remote user. In this sense, insertGroupMessageToLocalStorage() is sendMessage() API with the message delivery feature disabled.
|
pure virtual |
5.9 Query local messages in a specified conversation by messageID, including messages with the status V2TIM_MSG_STATUS_LOCAL_REVOKED (recalled) and V2TIM_MSG_STATUS_HAS_DELETED (deleted).
messageIDList | Message ID list |
|
pure virtual |
5.10 Search for local messages (supported only in Chat Premium 5.4.666 and later versions)
searchParam | Message search parameter. For details, see the definition of V2TIMMessageSearchParam. |
|
pure virtual |
5.11 Search for cloud messages (supported only in 7.3 and later versions)
searchParam | Message search parameter. For details, see the definition of V2TIMMessageSearchParam. |
|
pure virtual |
5.12 Send read receipts to the message sender (supported only in Chat Premium 6.1 and later versions)
messageList | Message list |
|
pure virtual |
5.13 Get read receipts for messages sent (Supported only in Chat Premium 6.1 and later versions)
messageList | Message list |
|
pure virtual |
5.14 Get group members who have read a group message (Supported only in Chat Premium 6.1 and later)
message | group message |
filter | Whether to get members who have or who have not read the message. |
nextSeq | 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 | Number of read members pulled per page. Supports up to 100. |
|
pure virtual |
5.15 Set message extensions (supported only in 6.7 and later versions)
message | The target message must be sent successfully and its supportMessageExtension field must be set to YES before sending. In addition, AVChatRoom message do not support this feature. |
extensions | The existing message extensions will be updated, and non-existing message extensions will be added directly. |
|
pure virtual |
5.16 Get message extensions (supported only in 6.7 and later versions)
|
pure virtual |
5.17 Delete message extensions (supported only in 6.7 and later versions)
keys | Message extension key list. If this is null, it means to delete all extensions of the message. |
|
pure virtual |
5.18 Add a message reaction (can be used for emoji response) (supported only in 7.4 and later versions)
Emoji response function refers to the interaction response to a message through emoji symbols. We can see the number of responses and the list of responders for each emoji.
Currently, there are two common styles of message response display:
Style one:
-------------------------—
| lucy, happy birthday! |
-------------------------—
| 😄 1 💐 2 👍🏻 10 |
-------------------------—
Style two:
------------------------------------------------------—
| lucy, happy birthday! |
------------------------------------------------------—
| 😁 bob 💐olivia 🎂david |
| 👍🏻 denny、james、lucy、linda、thomas and other 10 people |
-------------------------------------------------------—
When the user clicks on an emoji, it will jump to the emoji response detail interface:
| 😄 | 💐 | 👍🏻 |
| bob | olivia | lucy |
| ... | ... | denny |
| ... | ... | ... |
You can pull a list of users who responded with an emoji by page.
You can implement emoji response capabilities using the following SDK APIs:
1、Call addMessageReaction to add an emoji reaction to a message. If it succeeds, the current user will be added to the response list for that emoji.
2、Call removeMessageReaction to delete an added emoji reaction. If it succeeds, the current user will be removed from the response list for that emoji.
3、Call getMessageReactions to get the emoji reactions of multiple messages. The number of users who responded with each emoji and the information of the first N users (10 by default) will be returned.
4、Call getAllUserListOfMessageReaction to get the information of all users who responded with the emojis by page.
5、Listen to the onRecvMessageReactionsChanged callback to receive notifications about the change of emoji response. The callback will return the latest response information, including the total number of users who responded with each emoji and the information of the first N users.
reactionID | Message reaction ID. In the emoji response scenario, reactionID is the emojiID. A single message supports up to 10 reactions, and a single reaction supports up to 100 users. |
|
pure virtual |
5.19 Remove a message reaction (supported only in 7.4 and later versions)
|
pure virtual |
5.20 Get message reactions (supported only in 7.4 and later versions)
messageList | Message list, supports up to 20 messages at a time, which must belong to the same conversation. |
maxUserCountPerReaction | The value range is 【0,10】. Every reaction only supports returning the first 10 user profile at most. If you need more user profile, you can call the getAllUserListOfMessageReaction interface to pull in pages. |
|
pure virtual |
5.21 Get a list of users who responded with an emoji (supported only in 7.4 and later versions)
message | Message object |
reactionID | Message reaction ID |
nextSeq | The pulling-by-page cursor. Pass 0 for the first time, and pass the nextSeq returned by succ for subsequent pagination. |
count | The maximum count of users fetched per page, up to 100. |
|
pure virtual |
5.22 Translate text message.
sourceTextList | Texts to be translated. |
sourceLanguage | Source language. You can pass the specific language or "auto". "auto" means identifying the source language automatically. If you set it to nil, "auto" will be filled as default. |
targetLanguage | Target language. Multi languages are supported, like: English-"en", Simplified Chinese-"zh", French-"fr", German-"ge" and so on. For more languages, please refer to this documentation: Language support. |
callback | Translated result callback. The key represents the source text and value represents target text. |
|
pure virtual |
5.23 Set the group message to the top(supported only in Chat Premium 7.9 and later versions)
groupID | Group ID |
isPinned | Whether to pin it to the top |
|
pure virtual |
5.24 Get the list of pinned group messages(supported only in Chat Premium 7.9 and later versions)
groupID | Group ID |
|
pure virtual |
5.25 Mark all messages of a one-to-one conversation as read (This is to be deprecated. Please call cleanConversationUnreadMessageCount instead.)
|
pure virtual |
5.26 Mark all messages of a group chat as read (This is to be deprecated. Please call cleanConversationUnreadMessageCount instead.)
|
pure virtual |
5.27 Mark all messages as read (This is to be deprecated. Please call cleanConversationUnreadMessageCount instead.)