-
Notifications
You must be signed in to change notification settings - Fork 28
Events
huangminlinux edited this page Jul 18, 2018
·
9 revisions
注意:必须先调用 init
方法进行 SDK 初始化,事件监听才会生效。
- receiveMessage: 收到聊天消息
- clickMessageNotification: 点击消息通知
- syncOfflineMessage: 同步离线消息
- syncRoamingMessage: 同步漫游消息
- loginStateChanged: 登录状态变更
- contactNotify: 好友相关事件
- retractMessage: 消息撤回
- receiveApplyJoinGroupApproval:接收入群申请事件
- receiveGroupAdminReject:管理员拒绝入群申请事件
- receiveGroupAdminApproval:管理员同意入群申请事件
收到聊天消息事件。
监听函数以参数形式返回消息对象。
var listener = function (msg) {
// do something.
}
JMessage.addReceiveMessageListener(listener)
JMessage.removeReceiveMessageListener(listener)
点击通知栏消息通知事件监听,iOS 需要配合 jpush-phonegap-plugin 才能生效。
监听函数以参数形式返回消息对象。
var listener = function (msg) {
// do something.
}
JMessage.addClickMessageNotificationListener(listener)
JMessage.removeClickMessageNotificationListener(listener)
离线消息同步监听。
在用户离线(登出或网络断开)期间所产生的消息,会暂存在极光服务器中。当用户再次上线时,会触发该事件。
var listener = function (event) {
var conversation = event.conversation
var messageArray = event.messageArray
}
JMessage.addSyncOfflineMessageListener(listener)
JMessage.removeSyncOfflineMessageListener(listener)
消息漫游同步监听。
如果在初始化时设置了 isOpenMessageRoaming = true
,即代表启用了消息记录漫游,当用户在其他设备登录时,会自动将历史消息同步到本地,同步完成后会触发该事件。
var listener = function (event) {
var conversation = event.conversation
}
JMessage.addSyncRoamingMessageListener(listener)
JMessage.removeSyncRoamingMessageListener(listener)
用户登录状态变更事件监听。
var listener = function (event) {
var type = event.type
}
JMessage.addLoginStateChangedListener(listener)
JMessage.removeLoginStateChangedListener(listener)
- type: 消息类型,可能为:
- user_password_change: 用户密码在服务器端被修改,会自动登出
- user_logout: 用户换设备登录,在之前设备上会被登出
- user_deleted: 用户信息被服务器删除
- user_login_status_unexpected: 用户登录状态异常
好友相关事件监听。
var listener = function (event) {
var type = event.type
var reason = event.reason
var fromUsername = event.fromUsername
var fromUserAppKey = event.fromUserAppKey
}
JMessage.addContactNotifyListener(listener)
JMessage.removeContactNotifyListener(listener)
- type: 消息类型,可能为:
- invite_received: 收到好友邀请
- invite_accepted: 对方接受了你的好友邀请
- invite_declined: 对方拒绝了你的好友邀请
- contact_deleted: 对方将你从好友中删除
- reason: 事件发生的理由。由发起方请求时填写,如果没有填则返回默认字符串
- fromUsername: 事件发起者的 username
- fromUserAppKey: 事件发起者的 AppKey
消息被对方撤回通知事件。
var listener = function (event) {
var conversation = event.conversation
var retractedMessage = event.retractedMessage
}
JMessage.addMessageRetractListener(listener)
JMessage.removeMessageRetractListener(listener)
- conversation: 被撤回消息所属的会话对象
- retractedMessage: 被撤回的消息对象,但消息内容会被替换为提示内容
收到聊天室消息。
var listener = function (event) {
var messageArray = event.messageArray // 消息数组
}
JMessage.addReceiveChatRoomMessageListener(listener)
JMessage.removeReceiveChatRoomMessageListener(listener)
- messageArray: 消息数组。
监听接收入群申请事件
var listener = (result) => { }
JMessage.addReceiveApplyJoinGroupApprovalListener(listener) // 添加监听
JMessage.removeReceiveApplyJoinGroupApprovalListener(listener) // 移除监听(一般在 componentWillUnmount 中调用)
- event
- eventId (string):消息 id。
- groupId (string):申请入群的 groudId。
- isInitiativeApply (boolean):是否是用户主动申请入群,YES:主动申请加入,NO:被邀请加入
- sendApplyUser ([{UserInfo}]):发送申请的用户
- reason (string):入群原因
监听管理员拒绝入群申请事件
var listener = (result) => { }
JMessage.addReceiveGroupAdminRejectListener(listener) // 添加监听
JMessage.removeReceiveGroupAdminRejectListener(listener) // 移除监听(一般在 componentWillUnmount 中调用)
- result
- eventId (string): 消息 id。
- rejectReason (string): 拒绝原因。
- groupManager ({UserInfo}): 操作的管理员
监听管理员同意入群申请事件
var listener = (result) => { }
JMessage.addReceiveGroupAdminApprovalListener(listener) // 添加监听
JMessage.removeReceiveGroupAdminApprovalListener(listener) // 移除监听(一般在 componentWillUnmount 中调用)
- result
- isAgreeApply (boolean): 管理员是否同意申请,YES:同意,NO:拒绝.
- applyEventID (string): 申请入群事件的事件 id.
- groupId (string): 群 gid.
- groupAdmin {GroupInfo}: 操作的管理员.
- users [{UserInfo}]: 申请或被邀请加入群的用户,即:实际入群的用户