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

iOS 11 Safari相机权限留存问题及iOS版Chrome WebRTC支持时间咨询

嘿,这两个问题我刚好熟悉,给你详细拆解下:

一、如何让网站留存相机权限

其实现代浏览器(包括Chrome)本身就支持留存相机权限选择,但得满足几个关键条件:

  • 你的网站必须是HTTPS协议:HTTP环境下浏览器受安全限制,不会保存任何权限设置,每次调用相机都会弹窗请求,这是浏览器的安全规范,没法绕过。
  • 用户第一次选择「允许」后,浏览器会自动记住这个权限:之后再调用getUserMedia()请求相机时,就不会再弹出权限框了。但如果用户之前选了「拒绝」,或者手动清除了该网站的权限/数据,就会重新触发请求。
  • 如果是PWA(添加到主屏幕的Web App):在安卓Chrome上权限留存的稳定性会更高,体验和原生APP更接近。
  • 代码层面可以提前检查权限状态:用Permissions API先查询当前相机权限状态,避免不必要的请求弹窗。示例代码:
    navigator.permissions.query({ name: 'camera' })
      .then(permissionStatus => {
        console.log('当前相机权限状态:', permissionStatus.state);
        // state可能是'granted'(已允许)、'denied'(已拒绝)、'prompt'(未选择)
        if (permissionStatus.state === 'granted') {
          // 直接调用相机
          initCamera();
        } else if (permissionStatus.state === 'prompt') {
          // 发起权限请求
          requestCameraPermission();
        } else {
          // 提示用户去设置里开启权限
          alert('请在浏览器设置中允许相机权限');
        }
      });
    

二、iOS版Chrome的WebRTC支持情况

现在iOS版Chrome已经全面支持WebRTC了!因为iOS上所有第三方浏览器(包括Chrome、Firefox等)都必须使用苹果的WebKit内核,而苹果早在iOS 11版本就给WebKit添加了WebRTC支持。所以只要你的iOS系统版本在11及以上,并且Chrome是最新版本,就可以正常调用相机/麦克风等WebRTC功能。

如果遇到无法使用的情况,大概率是iOS版本过低,或者Chrome没有更新到最新版,建议先升级系统和浏览器试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:51:56