我正在尝试在我的网站上实现 DeviceOrientationEvent 和 DeviceMotionEvent 以获得 3D 效果。但是,控制台不会记录任何信息,显然 iOS 13 需要用户设置权限才能开始执行此操作。我似乎无法弄清楚如何正确设置它。
我做了一些研究,这是我发现的:https://github.com/w3c/deviceorientation/issues/57#issuecomment-498417027
遗憾的是,在线提供的所有其他方法都无法再使用。
window.addEventListener('deviceorientation', function(event) {
console.log(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
});
我收到以下错误消息:
[警告] 在请求并授予权限之前,不会触发任何设备运动或方向事件。
最佳答案
从 iOS 13 beta 2 开始,您需要调用 DeviceOrientationEvent.requestPermission() 才能访问陀螺仪或加速度计。这将显示一个权限对话框,提示用户允许对该站点的运动和方向访问。
请注意,如果您尝试在页面加载时自动调用它,这将不起作用。用户需要执行一些操作(如点击按钮)才能显示对话框。
此外,当前的实现似乎要求站点启用 https。
有关详细信息,请参阅 this page
关于javascript - 如何让 DeviceOrientationEvent 和 DeviceMotionEvent 在 Safari 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514116/