Javascript 如何检查是否在Chrome mobile browser中授予/阻止增强现实权限?

Javascript 如何检查是否在Chrome mobile browser中授予/阻止增强现实权限?,javascript,android,google-chrome,permissions,webxr,Javascript,Android,Google Chrome,Permissions,Webxr,问题: Chrome浏览器中的WebXR需要明确的用户同意(权限)才能进行空间跟踪,但我们遇到了阻止它的用户的问题。因此,为了向存在此问题的用户提供相关的用户体验(与可能发生的其他错误相反),我们需要检查Chrome中的权限(增强现实)是否已授予,如下图所示: 我所尝试的: 虽然中未列出“xr”权限描述符名称,但中对其进行了描述。但是,下面的代码返回一个错误 navigator.permissions.query({name: 'xr'}); 错误(我想这是意料之中的,因为它不在权限注册表中

问题

Chrome浏览器中的WebXR需要明确的用户同意(权限)才能进行空间跟踪,但我们遇到了阻止它的用户的问题。因此,为了向存在此问题的用户提供相关的用户体验(与可能发生的其他错误相反),我们需要检查Chrome中的权限(增强现实)是否已授予,如下图所示:

我所尝试的

虽然中未列出“xr”权限描述符名称,但中对其进行了描述。但是,下面的代码返回一个错误

navigator.permissions.query({name: 'xr'});
错误(我想这是意料之中的,因为它不在权限注册表中,我只是想也许Chrome已经扩展了它):

我也尝试过“沉浸式ar”、“xr空间跟踪”等,但没有成功。“xr spatial tracking”是一种功能策略,但如果我理解正确,功能策略的目的不是授予权限,而是限制页面上某些元素(例如iFrame)的权限

WebXR还使用摄像机,最有可能的是陀螺仪和加速计,但这些设备的权限不受“允许/阻止增强现实”的影响。我认为这是因为相机/跟踪部件在设备上本机运行,而不是在浏览器中运行(我可能弄错了)

示例

您可以使用Chrome浏览器上的移动设备访问,在url旁边的tablock按钮下查看“允许/阻止增强现实”权限

如何检查这些权限是否已授予或阻止?我不是问如何用权限请求提示用户,只是权限状态的只读值就可以了


谢谢大家!

您现在能做的最好的事情就是在用户手势期间请求空间跟踪,如果承诺被拒绝,则显示UI

通过读取Chrome源代码,可以查看Chrome支持的权限名称集它不支持“xr”。我已提交文件添加它,并将其添加到W3C的WebXR测试套件中

下面是Chrome在该API中支持的内容列表。其中一些可能是实验性的

  • 加速计
  • 可访问性事件
  • 环境光传感器
  • 后台提取
  • 背景同步
  • 摄像机
  • 剪贴板读取
  • 剪贴板写入
  • 显示捕获
  • 字体存取
  • 地理定位
  • 陀螺仪
  • 空闲检测
  • 磁强计
  • 传声器
  • 迷笛
  • nfc
  • 通知
  • 付款处理人
  • 周期性背景同步
  • 持久存储
  • 推送(仅使用{userVisible:true})
  • 屏幕尾流锁
  • 存储访问
  • 系统尾流锁
  • 窗口放置
TypeError: Failed to execute 'query' on 'Permissions': The provided value 'xr' is not a valid enum value of type PermissionName.