javascript - 如何在 Javascript 中检测浏览器和设备对陀螺仪和加速度计的支持?
问题描述
我有一个使用 360 度全景照片制作 VR 体验的网站。
最近,Apple 将 iOS 更新至 12.2,并默认关闭 safari 对“运动和方向”传感器的访问。
所以我需要添加一段 javascript 来检测陀螺仪和加速度计是否可用,并提示用户启用访问(如果可用)。
我在 stackoverflow 上发现了两个较早的代码建议,旨在检测对这些传感器的支持,但是在我的带有 iOS 12.2 的 iPhone 6s 上进行测试时,两种解决方案都报告说不存在陀螺仪,但事实并非如此。是的,可以访问运动和方向。
这是以前解决方案中的一个示例......
var canHandleOrientation;
if (window.DeviceOrientationEvent) {
window.addEventListener("deviceorientation", handleOrientation, false);
}
function handleOrientation(event){
console.log("Orientation:" + event.alpha + ", " + event.beta + ", " + event.gamma);
canHandleOrientation = event; // will be either null or with event data
}
if (!canHandleOrientation) {alert("There is no gyroscope")
在这个测试脚本中,如果没有来自陀螺仪的数据,应该会出现“没有陀螺仪”的警报。由于 iPhone 6s 有陀螺仪,我不希望看到该消息出现,但确实出现了。
解决方案
推荐阅读
- java - 无法发送多部分/表单数据
- ios - 将 .app 添加到越狱设备,并使其显示在 SpringBoard 上。(iOS 11.4.1)
- java - 使用 KStreams,我如何对 UncaughtExceptionHandler 进行单元测试?
- python - 具有共享轴的 matplotlib 子图
- javascript - ReactJS 在页面加载时多次渲染
- c# - 使用我的 nuget 包会生成大量 DLL
- python - 使用 discord.py 更改 Discord 机器人的昵称
- vue.js - vue-router中基于路由参数的动态组件
- powerbi - 根据特定列计算动态总和
- security - 在 Chrome 扩展中实现登录的最佳实践