# 事件广播

我们会对某些事件进行广播,你可以通过订阅相关的事件来进行相应的逻辑处理。

注意

所有的事件回调都在后台线程中执行,请谨慎操作 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

# 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.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:-
上次更新: 8/16/2024, 10:59:25 AM