# 未读消息
当客服人员回复了用户的消息后,用户可以收到未读消息的提醒,即使当前并没有展示 AIHelp 的页面。
你可以通过主动拉取或者第三方推送实现这个功能。
# 主动拉取
# API
# fetchUnreadMessageCount / fetchUnreadTaskCount
调用此方法可以主动拉取当前用户的未读消息数量。
FAIHelpForUEModule::Get().GetAIHelp()->FetchUnreadMessageCount();
FAIHelpForUEModule::Get().GetAIHelp()->FetchUnreadTaskCount();
你可以在任意时间调用该 API 查询当前用户的未读信息,但请注意:
- 上述方法内部都有默认的频率限制:
在限制期内的重复调用,会返回上一次的查询结果;在开发阶段,可以通过日志查看距离下一次有效调用的时间。
- 该方法会在以下情况返回 0,以通知调用者当前用户没有未读消息:
- 用户没有进行中客诉或进行中工单时;
- 用户打开客服会话窗口或已读所有工单信息时;
# 事件
通过监听 MESSAGE_ARRIVAL
或 UNREAD_TASK_COUNT
事件,你可以收到当前用户的未读消息情况:
FAIHelpForUEModule::Get().GetAIHelp()->RegisterAsyncEventListener(
EventType::MESSAGE_ARRIVAL,
[](const char *jsonData, Acknowledge ignored) {
// `jsonData`: { "msgCount": 1 }
}
);
FAIHelpForUEModule::Get().GetAIHelp()->RegisterAsyncEventListener(
EventType::UNREAD_TASK_COUNT,
[](const char *jsonData, Acknowledge ignored) {
// `jsonData`: { "taskCount": 1 }
}
);