权限:revoke() 方法

注意:此功能在 Web Workers 中可用。

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

Permissions 接口的 revoke() 方法可以将当前设置的权限恢复到其默认状态,通常是 prompt。此方法通过全局 Permissions 对象 navigator.permissions 调用。

此方法已从主要的权限 API 规范中移除,因为其用例不明确。权限由浏览器管理,当前的权限模型不涉及网站开发者能够命令式地请求或撤销权限。浏览器已在偏好设置中实现了此 API,但不太可能进入标准轨道。更多背景信息,请参阅 删除 permissions.revoke() 的原始讨论

语法

js
revoke(permissionDescriptor)

参数

permissionDescriptor

一个对象,用于设置 revoke 操作的选项。此描述符的可用选项取决于权限类型。

所有权限都有一个名称

name

一个字符串,包含您想查询权限的 API 名称。如果权限名称未被浏览器支持,返回的 Promise 将会以 TypeError 拒绝。

对于 push 权限,您还可以指定

userVisibleOnly 可选

(仅限推送,Firefox 不支持 — 请参阅下面的浏览器支持部分) 指示您是否想为每条消息显示通知,或者能够发送静默推送通知。默认为 false

对于 midi 权限,您还可以指定

sysex 可选

指示您是否需要和/或接收系统独占消息。默认为 false

返回值

一个 Promise,它会使用一个 PermissionStatus 对象调用其 fulfillment 处理程序,该对象指示请求的结果。

异常

TypeError

检索 PermissionDescriptor 信息时发生某种失败,或者权限不存在或当前不支持(例如,midi 或带有 userVisibleOnlypush)。

示例

应用程序可以使用此函数请求撤销其自身的 Geolocation API 权限。

js
function revokePermission() {
  navigator.permissions.revoke({ name: "geolocation" }).then((result) => {
    report(result.state);
  });
}

规范

规范
放弃权限
# dom-permissions-revoke

浏览器兼容性