# Events
We'll broadcast several events on the fly. You can subscribe to the relevant events to handle your own logic.
Note
All callbacks for subscribed events will be executed in a background thread. Please be cautious when manipulating UI elements.
# API
# registerAsyncEventListener()
To register a callback for a specific event.
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()
To unregister a callback for a specific event.
AIHelpSupport::unregisterAsyncEventListener(YOUR_EVENT);
# Definition
# eventType
- Type:
EventType
- Details: Required All Events may be triggered. It's worthing noting that different events may carry different parameters, some may need a acknowledge callback.
# asyncEventListener
- Type:
(const char *jsonEventData, void (*acknowledge)(EventType eventType, const char *jsonAckData))
- Details: Required The callback for registering an event.
- Explanation:
jsonEventData
: Event data in JSON formatacknowledge
: Use this callback method to send acknowledgment for several eventseventType
: Current eventjsonAckData
: Acknowledge data in JSON format
# Enumeration
# Initialization
- Enum: EventType.INITIALIZATION
- Data:
{ "isSuccess": true, "message": "Success" }
- ACK:
-
# Logging In
- Enum: EventType.USER_LOGIN
- Data:
{ "code": 1, "message": "Success" }
- ACK:
-
# Authentication
- Enum: EventType.ENTERPRISE_AUTH
- Data:
-
- ACK:
{ "token": "this_is_your_authenticated_token" }
# Unread Message
- Enum: EventType.MESSAGE_ARRIVAL
- Data:
{ "msgCount": 1 }
- ACK:
-
# Unread Task
- Enum: EventType.UNREAD_TASK_COUNT
- Data:
{ "taskCount": 1 }
- ACK:
-
# Uploading Logs
- Enum: EventType.LOG_UPLOAD
- Data:
-
- ACK:
{ "content": "this_is_your_authenticated_token" }
# Clicking URLs
- Enum:
EventType.URL_CLICK
- Data:
{ "url": "https://your.target.url?js-bridge=enable" }
- ACK:
-
- Details: When links containing
js-bridge=enable
as parameters are clicked, this event is triggered.
# Conversation Start
- 枚举值:
EventType.CONVERSATION_START
- 数据:
{ "message": "this is the first message user sent" }
- ACK:
-
# Opening AIHelp
- Enum:
EventType.SESSION_OPEN
- Data:
-
- ACK:
-
# Closing AIHelp
- Enum:
EventType.SESSION_CLOSE
- Data:
-
- ACK:
-