# 事件广播
我们会对某些事件进行广播,你可以通过订阅相关的事件来进行相应的逻辑处理。
注意
所有的事件回调都在后台线程中执行,请谨慎操作 UI 元素。
# API
# registerAsyncEventListener()
调用此方法注册某个事件的回调。
AIHelpSupport::registerAsyncEventListener(
YOUR_EVENT,
[](const char *jsonData, Acknowledge 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
- 类型:
(const char *jsonEventData, void (*acknowledge)(EventType eventType, const char *jsonAckData))
- 详情:必传参数。 针对事件的注册回调接口。
- 接口签名说明:
jsonEventData
: 事件数据,格式为 json 字符串acknowledge
: 调用此回调方法发送事件的回执结果eventType
: 当前事件jsonAckData
: 回执数据,格式为 json 字符串
# 事件枚举
# 初始化
- 枚举值: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:
-