首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在2019年/之后,如何访问移动浏览器webapp中的运动传感器(加速计、陀螺仪)?为什么它不再起作用?

在2019年/之后,如何访问移动浏览器webapp中的运动传感器(加速计、陀螺仪)?为什么它不再起作用?
EN

Stack Overflow用户
提问于 2019-08-27 02:25:38
回答 2查看 2.9K关注 0票数 0

我的代码旨在测量移动设备上的设备运动,它过去可以在移动浏览器中运行,但现在不能。下面是一个直接取自Mozilla web文档的示例:

代码语言:javascript
运行
复制
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);

据我所知,这样的代码在移动浏览器中不再有效(大约在2019年8月)。

为什么?需要做些什么?

在花时间尝试调试我自己的代码后,我发现web上提供的许多示例/演示/测试程序也不再有效,例如:

http://www.gianpa.com/shake/

http://www.albertosarullo.com/demos/accelerometer/

这似乎与现代浏览器/权限/等的一些变化有关,可能与最近披露的与加速计访问相关的安全问题有关,以及Apple和Google因此采取的措施,例如:

https://www.macrumors.com/2019/02/04/ios-12-2-safari-motion-orientation-access-toggle/

我发现,无论是最近运行Chrome的安卓手机,还是相对较新的运行Safari的iOS手机,似乎都不再允许webapp访问运动传感器。然而,当我在较旧的Android设备上加载相同的演示代码(例如来自上面的演示网站)时……它和以前一样工作得很好。

要访问webapp应用程序中的运动数据,需要执行哪些操作?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-08-27 02:33:28

显然,它现在需要使用https://提供和访问网站/webapp,才能使用运动传感器。我使用http://,访问了上面没有提供任何传感器数据的同一个URL,它确实可以使用https://

票数 5
EN

Stack Overflow用户

发布于 2021-03-26 20:11:16

如果您使用的是较旧版本的Chrome63,请启用chrome://flags/#enable-generic-sensor标志。

如果您使用的是环境传感器,如磁强计或AmbientLightSensor,请同时启用chrome://flags/#enable-generic-sensor-extra-classes标志。

参考:https://intel.github.io/generic-sensor-demos/

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

https://stackoverflow.com/questions/57663033

复制
相关文章

相似问题

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