# 事件广播
我们会对某些事件进行广播,你可以通过订阅相关的事件来进行相应的逻辑处理。
注意
所有的事件回调都在后台线程中执行,请谨慎操作 UI 元素。
# API
# registerAsyncEventListener()
调用此方法注册某个事件的回调。
AIHelpSupport.registerAsyncEventListener(YOUR_EVENT, new AsyncEventListener() {
@Override
public void onAsyncEventReceived(String jsonEventData, Acknowledgment ack) {
// You can get callback here if the target event is fired
// checkout at the definition and code examples for more information
}
});
# unregisterAsyncEventListener()
调用此方法解除对某个事件的监听。
AIHelpSupport.unregisterAsyncEventListener(YOUR_EVENT);
# 参数释义
# eventType
- 类型:
EventType
- 详情:必传参数。 所有 AIHelp 可能会触发的事件。不同的事件可能会携带不同的参数,有些事件可能还会要求回执。
# asyncEventListener
- 类型:
AsyncEventListener
- 详情:必传参数。 针对事件的注册回调接口。
- 接口签名说明:
public interface AsyncEventListener { /** * 当接收到事件时调用 * * @param jsonEventData 事件数据,格式为 json 字符串 * @param ack 需要回执给 AIHelp 的回调接口 */ void onAsyncEventReceived(String jsonEventData, Acknowledgment ack); } public interface Acknowledgment { /** * 部分事件可能需要将结果回传给 AIHelp,在这种情况下,调用此回调方法发送确认结果。 * * 目前需要使用此功能的事件: * 1. `EventType.ENTERPRISE_AUTH` 企业身份认证,通过 `token` 字段将用户令牌回传; * 2. `EventType.UPLOAD_LOG` 日志上传,通过 `content` 字段将上传结果或其它信息回传。 * * @param jsonAckData 事件的回执结果,格式为 json 字符串 */ void acknowledge(String jsonAckData); }
# 事件枚举
# 初始化
- 枚举值:EventType.INITIALIZATION
- 数据:
{ "isSuccess": true, "message": "Success" }
- ACK:
-
# 用户登录
- 枚举值:EventType.USER_LOGIN
- 数据:
{ "code": 1, "message": "Success" }
- ACK:
-
# 企业授权
- 枚举值:EventType.ENTERPRISE_AUTH
- 数据:
-
- ACK:
{ "token": "this_is_your_authenticated_token" }
# 未读消息
- 枚举值:EventType.MESSAGE_ARRIVAL
- 数据:
{ "msgCount": 1 }
- ACK:
-
# 未读工单
- 枚举值:EventType.UNREAD_TASK_COUNT
- 数据:
{ "taskCount": 1 }
- ACK:
-
# 日志上传
- 枚举值:EventType.LOG_UPLOAD
- 数据:
-
- ACK:
{ "content": "this_is_your_authenticated_token" }
# 链接点击
- 枚举值:
EventType.URL_CLICK
- 数据:
{ "url": "https://your.target.url?js-bridge=enable" }
- ACK:
-
- 说明:参数包含
js-bridge=enable
的链接被点击的时候,该事件就会被触发
# 对话开始
- 枚举值:
EventType.CONVERSATION_START
- 数据:
{ "message": "this is the first message user sent" }
- ACK:
-
# 窗口打开
- 枚举值:
EventType.SESSION_OPEN
- 数据:
-
- ACK:
-
# 窗口关闭
- 枚举值:
EventType.SESSION_CLOSE
- 数据:
-
- ACK:
-