JMSGMessageDelegate Protocol Reference

Conforms to NSObject
Declared in JMSGMessageDelegate.h

Overview

消息相关的变更通知

包括三类:

  • 发出消息的返回结果;
  • 服务器端下发的消息;
  • 服务器端下发的事件(一类特殊的消息);

– onSendMessageResponse:error:

发送消息结果返回回调

- (void)onSendMessageResponse:(JMSGMessage *)message error:(NSError *)error

Parameters

message

原发出的消息对象

error

不为nil表示发送消息出错

Discussion

应检查 error 是否为空来判断是否出错. 如果未出错, 则成功.

Declared In

JMSGMessageDelegate.h

– onReceiveMessage:error:

接收消息(服务器端下发的)回调

- (void)onReceiveMessage:(JMSGMessage *)message error:(NSError *)error

Parameters

message

接收到下发的消息

error

不为 nil 表示接收消息出错

Discussion

应检查 error 是否为空来判断有没有出错. 如果未出错, 则成功. 留意的是, 这里的 error 不包含媒体消息下载文件错误. 这类错误有单独的回调 onReceiveMessageDownloadFailed:

收到的消息里, 也包含服务器端下发的各类消息事件, 比如有人被加入了群聊. 这类消息事件处理为特殊的 JMSGMessage 类型.

事件类的消息, 基于 JMSGMessage 类里的 contentType 属性来做判断, contentType = kJMSGContentTypeEventNotification.

Declared In

JMSGMessageDelegate.h

– onReceiveMessageDownloadFailed:

接收消息媒体文件下载失败的回调

- (void)onReceiveMessageDownloadFailed:(JMSGMessage *)message

Parameters

message

下载出错的消息

Discussion

因为对于接收消息, 最主要需要特别做处理的就是媒体文件下载, 所以单列出来. 一定要处理.

通过的作法是: 如果是图片, 则 App 展示一张特别的表明未下载成功的图, 用户点击再次发起下载. 如果是语音, 则不必特别处理, 还是原来的图标展示. 用户点击时, SDK 发现语音文件在本地没有, 会再次发起下载.

Declared In

JMSGMessageDelegate.h