
# 获取可共享程序列表
#### 接口描述
获取当前操作系统可以被共享的程序窗口列表。
#### 注意事项
前置条件:已经建立与OpenEye的WebSocket连接，且处于视频通话中。
#### 方法定义
```
OpenEyeCall.prototype.getAppList = function(callbacks)
```
#### 参数描述
表1参数说明 
| 参数名       | 类型                                                             | 可选/必选 | 描述    |
|:---|:---|:---|:---|
| callbacks | [Callback] | 必选    | 回调方法。 |
   
 表2Callback 
| 参数名      | 类型       | 可选/必选 | 描述                                                                 |
|:---|:---|:---|:---|
| response | function | 必选    | 回调方法的入参请参考[表3] |
   
 表3回调方法的入参 
| 参数名         | 类型        | 描述                     |
|:---|:---|:---|
| description | String    | 当前请求描述。                |
| result      | Number    | 设置结果。0表示成功，其他表示失败。     |
| rsp         | Number    | 内部消息编号。                |
| param       | key:value | 窗口句柄与窗口名称的key value键值对 |
   
![](https://support.huaweicloud.com/devg-openeye-cec/public_sys-resources/note_3.0-zh-cn.png)
回调方法的入参示例：
```
{
   "description" : "tsdk_share_evt_getapplist",
   "result" : 0,
   "rsp" : 67753
   "param":{
     65552: "桌面"
     132070: "app1"
     132974: "app2"
     198240: "app3"
     328180: "app4"
     329712: "app5"
   }
}
注意:65552这些数字为对应后面窗口的window系统内的窗口句柄，调用设置要共享窗口的接口入参的第一个参数即为该值
```
#### 使用示例
```
function getAppList(){
    this.global_openEye_SDK.openEyeCall.getAppList({ response: getAppListResponse })
}
function getAppListResponse(data) {
    console.log(data);
    if (data.result == 0) {
        console.info("getAppListResponse success");
        document.getElementById("shareAppList").innerHTML = "";
        for (var key in data.param) {
            var item = data.param[key];
            document.getElementById("shareAppList").options.add(new Option(key + "_" + item, key));
        }
    } else {
        console.error("getAppListResponse failed");
    }
}
```
