首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >deviceMotion rotationRate在iOS 13.4上为空

deviceMotion rotationRate在iOS 13.4上为空
EN

Stack Overflow用户
提问于 2020-04-21 08:56:35
回答 2查看 659关注 0票数 2

自iOS 11.
以来,我使用devicemotion事件访问Safari上的陀螺仪。

历史:

  • 在iOS 11 / 12上,陀螺仪访问是开放的,只需要监听设备情感事件。
  • 从iOS 12.2开始,苹果阻止了陀螺仪的访问,您需要激活一个safari设置选项
  • 从iOS 13开始,苹果就实施了"DeviceOrientationEvent.requestPermission“来询问陀螺仪的访问,当用户同意时,devicemotion事件就有了带有alpha / beta / gamma值的关键"rotationRate”(在约定之前,值为null)。


问题:

在iOS 13.4中,没有任何代码更改,在我使用此功能的所有项目中,即使用户同意陀螺仪访问,rotationRate也始终是空的。


我从苹果那里寻找了一个官方的答案,但什么都没有。它看起来像一个bug,但也许我的实现是错误的?


很高兴知道我的密码:

首先,我监听devicemotion事件(带有rotationRate null),当界面准备就绪时,用户单击按钮,询问陀螺仪访问,rotationRate有值。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-26 22:51:13

这似乎是iOS 13.4中的一个bug,因为即使是webxr填充也无法检测到哪些功能具有设备,因为它们具有这些功能(第3770行):

代码语言:javascript
复制
if (this.isWithoutDeviceMotion) {
  window.addEventListener('deviceorientation', this.onDeviceOrientationCallback_);
} else {
  window.addEventListener('devicemotion', this.onDeviceMotionCallback_);
}

条件计算为false,因此使用devicemotion,然后rotationRateaccelerationIncludingGravity都为null。

因此,我认为现在的解决办法是倾听面向设备的事件,而不是设备情感,即使提前被请求了权限,这也是强制性的。

票数 1
EN

Stack Overflow用户

发布于 2020-07-19 10:25:03

是的,这里也是,旋转数据是空的。但是加速和accelerationIncludingGravity不是null,您可以使用这些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61339598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档