use*_*237 4 javascript android google-chrome mobile-safari ios
我有一些代码旨在测量移动设备上的设备运动,它曾经可以在移动浏览器中运行,但现在不再可以了。以下是直接取自 Mozilla 网络文档的示例:
function handleMotionEvent(event) {
var x = event.accelerationIncludingGravity.x;
var y = event.accelerationIncludingGravity.y;
var z = event.accelerationIncludingGravity.z;
// Do something awesome.
}
window.addEventListener("devicemotion", handleMotionEvent, true);
Run Code Online (Sandbox Code Playgroud)
据我所知,这样的代码不再适用于移动浏览器(大约 2019 年 8 月)。
为什么?需要做什么?
在花时间尝试调试自己的代码后,我发现网络上提供的许多示例/演示/测试程序也不再起作用,例如:
http://www.albertosarullo.com/demos/accelerometer/
这似乎与现代浏览器/权限/等的一些变化有关,可能与最近披露的与加速度计访问相关的安全问题有关,以及苹果和谷歌因此采取的措施,例如:
https://www.macrumors.com/2019/02/04/ios-12-2-safari-motion-orientation-access-toggle/
我发现,无论是运行最新 Chrome 的最新 Android 手机还是运行 Safari 的相对较新的 iOS 手机似乎都不再允许 Web 应用程序访问运动传感器。然而,当我在旧的 Android 设备上加载相同的演示代码(例如,来自上述演示网站)时......它像以前一样工作正常。
要在网络应用程序中访问运动数据需要做什么?
谢谢
显然,现在需要使用 https:// 来服务和访问网站/网络应用程序,以便能够使用运动传感器。我使用 http:// 访问了上面的相同 URL,但没有提供任何传感器数据,但使用 https:// 确实可以工作
| 归档时间: |
|
| 查看次数: |
5505 次 |
| 最近记录: |