Skip to content
huangminlinux edited this page Jul 18, 2018 · 9 revisions

注意:必须先调用 init 方法进行 SDK 初始化,事件监听才会生效。

Contents

receiveMessage

收到聊天消息事件。

监听函数以参数形式返回消息对象

示例

var listener = function (msg) {
  // do something.
}
JMessage.addReceiveMessageListener(listener)
JMessage.removeReceiveMessageListener(listener)

clickMessageNotification

点击通知栏消息通知事件监听,iOS 需要配合 jpush-phonegap-plugin 才能生效。

监听函数以参数形式返回消息对象

示例

var listener = function (msg) {
  // do something.
}
JMessage.addClickMessageNotificationListener(listener)
JMessage.removeClickMessageNotificationListener(listener)

syncOfflineMessage

离线消息同步监听。

在用户离线(登出或网络断开)期间所产生的消息,会暂存在极光服务器中。当用户再次上线时,会触发该事件。

示例

var listener = function (event) {
  var conversation = event.conversation
  var messageArray = event.messageArray
}
JMessage.addSyncOfflineMessageListener(listener)
JMessage.removeSyncOfflineMessageListener(listener)

syncRoamingMessage

消息漫游同步监听。

如果在初始化时设置了 isOpenMessageRoaming = true,即代表启用了消息记录漫游,当用户在其他设备登录时,会自动将历史消息同步到本地,同步完成后会触发该事件。

示例

var listener = function (event) {
  var conversation = event.conversation
}
JMessage.addSyncRoamingMessageListener(listener)
JMessage.removeSyncRoamingMessageListener(listener)

loginStateChanged

用户登录状态变更事件监听。

示例

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: 用户登录状态异常

contactNotify

好友相关事件监听。

示例

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

retractMessage

消息被对方撤回通知事件。

示例

var listener = function (event) {
  var conversation = event.conversation
  var retractedMessage = event.retractedMessage
}
JMessage.addMessageRetractListener(listener)
JMessage.removeMessageRetractListener(listener)

事件属性

  • conversation: 被撤回消息所属的会话对象
  • retractedMessage: 被撤回的消息对象,但消息内容会被替换为提示内容

receiveChatRoomMessage

收到聊天室消息。

示例

var listener = function (event) {
  var messageArray = event.messageArray // 消息数组
}
JMessage.addReceiveChatRoomMessageListener(listener)
JMessage.removeReceiveChatRoomMessageListener(listener)

事件属性

  • messageArray: 消息数组。

receiveApplyJoinGroupApproval

监听接收入群申请事件

示例
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):入群原因

receiveGroupAdminReject

监听管理员拒绝入群申请事件

示例
var listener = (result) => { }

JMessage.addReceiveGroupAdminRejectListener(listener) // 添加监听
JMessage.removeReceiveGroupAdminRejectListener(listener) // 移除监听(一般在 componentWillUnmount 中调用)
回调参数说明
  • result
    • eventId (string): 消息 id。
    • rejectReason (string): 拒绝原因。
    • groupManager ({UserInfo}): 操作的管理员

receiveGroupAdminApproval

监听管理员同意入群申请事件

示例
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}]: 申请或被邀请加入群的用户,即:实际入群的用户