

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon DCV 特征
<a name="work-with-features"></a>

Amazon DCV 特征是否可用取决于为 Amazon DCV 会话配置的权限以及客户端 Web 浏览器功能。

 Amazon DCV 会话中提供的特征是由为会话指定的权限管理的。这意味着，即使 Amazon DCV Web Client SDK 支持某个特征，也可能会根据会话管理员定义的权限禁止访问该特征。有关更多信息，请参阅《Amazon DCV 管理员指南》中的[配置 Amazon DCV 授权](https://docs.aws.amazon.com/dcv/latest/adminguide/security-authorization.html)。**

## 了解 featuresUpdate 回调函数
<a name="understand"></a>

 在 Amazon DCV 会话中的特征的可用性发生变化时，Amazon DCV Web Client SDK 使用您在建立连接时指定的 `featuresUpdate` 回调函数通知您。例如：

```
featuresUpdate: function (connection, list) {
  ...
},
```

 该回调函数仅通知您可用性发生变化的功能。`list` 参数是一个字符串数组，它仅包含更新的功能的名称。例如，如果会话的音频输入功能可用性发生变化，则该参数仅包含 `["audio-in"]`。如果会话的剪贴板复制和粘贴功能的可用性以后发生变化，则该参数仅包含 `["clipboard-copy", "clipboard-paste"]`。

## 处理功能更新
<a name="handle"></a>

 `featuresUpdate` 回调函数仅通知您一个或多个功能的可用性发生变化。要了解更新了哪些功能，您必须使用 `connection.queryFeature` 方法查询该功能。在收到变化通知后，可以随时执行该操作。该方法返回 `Promise`，它解析为请求的功能的更新状态。`status` 值始终是关联的，并且它具有一个名为 `enabled` 的布尔值（`true` \$1 `false`）属性。某些功能可能在 `status` 值中具有其他属性。如果尚未更新该功能的可用性，则会拒绝该功能。

以下示例代码说明了如何执行该操作。

```
// Connection callback called
function featuresUpdate (_, list) {
  if (list.length > 0) {
    list.forEach((feat) => {
      connection.queryFeature(feat).then(status => console.log(feat, "is", status.enabled)));
    });
  }
}
```