# 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, 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()
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:
AsyncEventListener - Details: Required The callback for registering an event.
- Explanation:
public interface AsyncEventListener { /** * Called when an event is triggered. * * @param jsonEventData JSON formatted event data * @param ack Callback interface to acknowledge to AIHelp */ void onAsyncEventReceived(String jsonEventData, Acknowledgment ack); } public interface Acknowledgment { /** * Some events may require sending results back to AIHelp. Use this callback * method to send acknowledgment. * * Currently required for these events: * 1. `EventType.ENTERPRISE_AUTH`: Enterprise authentication. Send the user token * back via the `token` field. * 2. `EventType.UPLOAD_LOG`: Log upload. Send upload results or other information * via the `content` field. * * @param jsonAckData JSON formatted acknowledgment data */ void acknowledge(String jsonAckData); }
# 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=enableas 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:
-