You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WebView中撤销已授予网站的摄像头与麦克风权限?

在WebView中撤销摄像头与麦克风权限的可行方法

Android 平台方案

1. 针对特定网站撤销权限(Android 11+)

通过WebView的PermissionController可精准撤销指定Origin网站的摄像头/麦克风权限,代码示例(Kotlin):

val targetOrigin = Uri.parse("https://your-target-site.com")
webView.permissionController.apply {
    revokePermission(targetOrigin, Manifest.permission.CAMERA, null)
    revokePermission(targetOrigin, Manifest.permission.RECORD_AUDIO, null)
}

2. 清除所有网站的权限记录

若需批量撤销所有网站的权限,可直接清除WebView的权限偏好:

webView.clearPermissionPreferences()

iOS 平台方案

1. 针对特定网站撤销权限

利用WKWebsiteDataStore定位目标网站的权限记录并删除,代码示例(Swift):

let dataStore = WKWebsiteDataStore.default()
let permissionTypes = Set([WKWebsiteDataTypePermissions])

dataStore.fetchDataRecords(ofTypes: permissionTypes) { records in
    let targetRecords = records.filter { $0.displayName == "your-target-site.com" }
    dataStore.removeData(ofTypes: permissionTypes, for: targetRecords) {
        // 权限撤销完成
    }
}

2. 清除所有网站的权限记录

若无需区分网站,直接清除所有权限相关数据:

let dataStore = WKWebsiteDataStore.default()
let permissionTypes = Set([WKWebsiteDataTypePermissions])

dataStore.fetchDataRecords(ofTypes: permissionTypes) { records in
    dataStore.removeData(ofTypes: permissionTypes, for: records) {
        // 所有权限已清除
    }
}

跨平台前端注入方案(适用于支持Permissions API的WebView内核)

如果WebView允许注入JavaScript,可直接在页面中调用浏览器的Permissions API撤销权限,代码示例:

// 撤销摄像头权限
navigator.permissions.revoke({ name: 'camera' }).then(res => {
    console.log("摄像头权限状态:", res.state);
});

// 撤销麦克风权限
navigator.permissions.revoke({ name: 'microphone' }).then(res => {
    console.log("麦克风权限状态:", res.state);
});

注意:该API需要WebView内核支持(如Android Chrome 64+、iOS Safari 11.1+对应的WebView),且必须在目标网站的上下文环境中执行。


内容的提问来源于stack exchange,提问作者Hshem 007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:25:18