
# 事件
#### 接口列表
表1**事件接口列表** 
| 接口            | 描述      | 参数名     | 参数类型                                                                                                                           | 参数说明                                                                              | 返回值                                               |
|:---|:---|:---|:---|:---|:---|
| addEvent      | 侦听事件。   | evtName | string                                                                                                                         | 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 | void   |
| addEvent      | 侦听事件。   | cb      | Function                                                                                                                       | 侦听到事件后，触发的回调函数。                                                                   | void   |
| addEvent      | 侦听事件。   | cbThis  | any                                                                                                                            | 当前实例。                                                                             | void   |
| removeEvent   | 移除侦听事件。 | evtName | string                                                                                                                         | 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 | void      |
| removeEvent   | 移除侦听事件。 | cb      | Function                                                                                                                       | 回调函数。                                                                             | void      |
| dispatchEvent | 派发事件。   | evtName | string                                                                                                                         | 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 | void                                              |
| dispatchEvent | 派发事件。   | params  | { key: value, key2: value2 } | 事件携带的信息，键值对形式。                                                                    | void                                              |
   
#### 接口调用示例
- **侦听事件**
  用于侦听事件，并触发侦听函数。
  ```
  XRClient.addEvent(GlobalBus.VPS_RESULT, this.onVpsResult,this);
  ```
  定义侦听函数。
  ```
  onVpsResult(evt) {
       XRClient.log("onVpsResult status" + evt.data.status);  
       XRClient.log("onVpsResult info" + evt.data.info);
       if (evt.data.status) {
          XRClient.log("VPS success");
          wx.showToast({
            title: 'success',
            icon: 'success',
            duration: 2000
          })        
        } else {
          XRClient.log("VPS failure");
          wx.showToast({
            title: 'failure',
            icon: 'none',
            duration: 2000
          })
        }
   },
  ```
  
- **移除侦听事件**
  用于移除事件，移除后侦听函数不再触发。
  ```
  XRClient.removeEvent(GlobalBus.VPS_RESULT, this.onVpsResult);
  ```
  
- **派发事件**
  用于派发事件，配合侦听事件使用，接收到此处派发的事件，并做相应处理。
  ```
  XRClient.dispatchEvent('user_define', { status: false, info: 'test' } );
  ```
  
 
#### SDK内部事件
表2**SDK内部事件列表** 
| 事件名称           | 描述         | 携带数据   | 数据类型    | 数据说明      | 事件说明                    |
|:---|:---|:---|:---|:---|:---|
| VPS_RESULT     | Vps定位结果事件。 | status | boolean | 定位是否成功。   | Vps定位结果返回时触发该事件。        |
| VPS_RESULT     | Vps定位结果事件。 | info   | string  | 具体定位结果信息。 | Vps定位结果返回时触发该事件。        |
| VPS_TRACKING   | Vps跟踪状态事件。 | status | boolean | 状态是否为跟踪中。 | Vps跟踪状态变化时触发。           |
| SCENE_INSTANCE | scene实例事件。 | info   | object  | scene实例。  | 初始化视觉定位模块时，派发scene实例事件。 |
   
