JMessage-iOS-SDK
Jump To… Overview
Conforms to | JMSGConversationDelegate JMSGDBMigrateDelegate JMSGEventDelegate JMSGGroupDelegate JMSGMessageDelegate JMSGUserDelegate |
---|---|
Declared in | JMessageDelegate.h |
有些特殊的消息,需要做特殊判断,比如:群里的一些事件消息,添加群成员、设置群管理员事件等. 思路上, 需要先从 onReceiveMessage 上收到事件类型的消息, 判断 JMSGEventContent 里的 eventType = kJMSGEventNotificationAddGroupMembers 表示这是一个群组加人的事件. 以下示例代码在上述 onReceiveMessage 监听里:
// 通过你的方式取到了 Conversation 实例
JMSGConversation theConversation = …;
// 在类的初始化代码里, 注册代理, 指定 Conversation.
[JMessage addDelegate:self withConversation:theConversation];
// 实现 JMSGMessageDelegate 里的发送消息返回的回调方法
- (void)onSendMessageResponse:(JMSGMessage )message
error:(NSError )error {
// 这里处理发送消息返回
// message 对象是你原本发出的消息对象
}
// 实现 JMSGMessageDelegate 里的接收消息回调方法
- (void)onReceiveMessage:(JMSGMessage )message
error:(NSError )error {
// 这里处理收到的消息
}
#### 事件代理 有一类特殊的系统事件, 需要特别提示,如:其他设备登录被踢、加好友、申请入群等事件,SDK 会收到一个下发通知. 思路上, 需要先实现相关事件的代理方法,如果有多个事件共用同一个代理还需判断 eventType. 以用户被踢事件为例:
if (message.contentType == kJMSGContentTypeEventNotification) {
JMSGEventContent
eventContent = (JMSGEventContent) message.content;
if (eventContent.eventType == kJMSGEventNotificationAddGroupMembers) {
// 一般的作法应该是界面显示一条消息: “xxx 加入了群组”
}
}
其他事件的监听类似.
// 实现 JMSGEventDelegate 里的接收事件代理方法
- (void)onReceiveUserLoginStatusChangeEvent:(JMSGUserLoginStatusChangeEvent *)event {
if (event.eventType == kJMSGEventNotificationLoginKicked) {
// 这里做用户被踢处理. 一般的作法应该是: 弹出提示信息,告诉用户在其他设备登录了;
// 弹窗关闭后界面切换到用户登录界面
}
}
Copyright © 2019 HXHG. All rights reserved. Updated: 2019-05-06
Generated by appledoc 2.2.1 (build 1334).