# 未读消息数回调

当客服人员回复了用户的消息后,用户可以收到未读消息的提醒,即使当前并没有展示 AIHelp 的页面。

你可以通过每五分钟一次的轮询作业或者第三方推送实现这个功能。

注意

AIHelp 默认使用随机生成的 deviceId 作为 userId 进行未读消息数量的轮询。

所以,在你将正确的 userId 同步给 AIHelp 之前,未读消息数量可能会不准确。

# 主动拉取 v4.6.0

# API

# fetchUnreadMessageCount

调用此方法可以主动拉取当前用户的未读消息数量。

AIHelpSupport.fetchUnreadMessageCount(new OnMessageCountArrivedCallback() {
    @Override
    public void onMessageCountArrived(int msgCount) {
        // write your code here
    }
});

你可以在任意时间调用该 API 查询当前用户的未读消息数量,但请注意:

  1. 该方法内部有 5 分钟的频率限制:

在限制期内的重复调用,会返回上一次的查询结果;在开发阶段,可以通过日志查看距离下一次有效调用的时间。

  1. 该方法会在以下情况返回 0,以通知调用者当前用户没有未读消息:
  • 轮询功能开关未开启时;
  • 用户没有进行中客诉时;
  • 用户处于 AIHelp 页面内;
  • 用户打开客服会话窗口时;

# 参数释义

# onUnreadMessageCountCallback

  • 类型:OnMessageCountArrivedCallback
  • 详情:必传参数。 未读消息数量的回调。

# 轮询方案

注意

此功能默认为关闭状态,如有需要,请联系 AIHelp 运营人员开启此功能。

# API

# startUnreadMessageCountPolling

调用此方法可以启动未读消息数量的轮询作业。

AIHelpSupport.startUnreadMessageCountPolling(new OnMessageCountArrivedCallback() {
    @Override
    public void onMessageCountArrived(int msgCount) {
        // write your code here
    }
});

方法内部每 5 分钟主动拉取一次当前用户的未读消息数量。

我们会在以下情况返回 0,以通知调用者当前用户没有未读消息:

  • 轮询功能开关未开启时;
  • 用户没有进行中客诉时;
  • 用户处于 AIHelp 页面内;
  • 用户打开客服会话窗口时;

# 参数释义

# onUnreadMessageCountCallback

  • 类型:OnMessageCountArrivedCallback
  • 详情:必传参数。 未读消息数量的回调。

# 推送方案

下面以 Firebase 平台为例,说明如何利用第三方推送平台实现应用内未读消息的回调。

1、按照 Google 官方文档 (opens new window) 接入 Firebase;

2、在代码中调用推送相关的方法,将用户的推送标识以及推送平台告知 AIHelp:

AIHelpSupport.setPushTokenAndPlatform("PUSH_TOKEN", PushPlatform.FIREBASE);

3、在自定义 FirebaseMessagingService.java 中重写 onMessageReceived 方法,并在应用处于前台时解析 AIHelp 的推送:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    // Check if current application is foreground and visible to users
    if (isAppForeground()) {
        if (remoteMessage.getData() != null) {
            if ("yes".equals(remoteMessage.getData().get("elva"))) {
                // alert your users that he/she has received a new message
            }
        }
    }
}

4、AIHelp 推送数据格式如下:

{
    "to":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
        "body":"This is your new message content",
        "title":"customer service sends you a message.",
        "sound":"Enabled",
        "priority":"high",
        "uid":"..."
    },
    "data":{
        "body":"This is your new message content",
        "title":"customer service sends you a message.",
        "uid":"...",
        "elva":"yes",
        "entry_tag":"..."
    }
}
上次更新: 12/29/2023, 8:27:54 AM