差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版 两侧同时换到之后的修订记录
im:android:basics:message [2020/08/10 03:58]
zhaoliang [发送自定义类型消息]
im:android:basics:message [2020/08/10 04:02]
zhaoliang [设置群消息是否需要已读回执(增值服务)]
行 175: 行 175:
     ​     ​
  </​code>​  </​code>​
 +
 +
 +==== 发送群消息已读回执 ====
 +<code objc>
 +public void sendAckMessage(EMMessage message) {
 +        if (!validateMessage(message)) {
 +            return;
 +        }
 +
 +        if (message.isAcked()) {
 +            return;
 +        }
 +
 +        // May a user login from multiple devices, so do not need to send the ack msg.
 +        if (EMClient.getInstance().getCurrentUser().equalsIgnoreCase(message.getFrom())) {
 +            return;
 +        }
 +
 +        try {
 +            if (message.isNeedGroupAck() && !message.isUnread()) {
 +                String to = message.conversationId();​ // do not user getFrom() here
 +                String msgId = message.getMsgId();​
 +                EMClient.getInstance().chatManager().ackGroupMessageRead(to,​ msgId, ((EMTextMessageBody)message.getBody()).getMessage());​
 +                message.setUnread(false);​
 +                EMLog.i(TAG,​ "Send the group ack cmd-type message."​);​
 +            }
 +        } catch (Exception e) {
 +            EMLog.d(TAG,​ e.getMessage());​
 +        }
 +    }
 +</​code>​
 +
 +当发送群已读回执后,消息发送方对应EMMessage的groupAckCount属性会有相应变化;
 +
 +
 +==== 群消息已读回调 ====
 +
 +<​code>​
 + /**
 + * \~chinese
 + * 接受到群组消息体的已读回执,​ 消息的接收方已经阅读此消息。
 + *
 + * \~english
 + * received message read ack by recipient as message had been read
 + *
 + */
 +         void onGroupMessageRead(List<​EMGroupReadAck>​ groupReadAcks) {
 +        }
 +
 +</​code>​
 +