在手持环境中在移动设备上浏览 Web 时,DeviceOrientation 有多敏感

Posted

技术标签:

【中文标题】在手持环境中在移动设备上浏览 Web 时,DeviceOrientation 有多敏感【英文标题】:How sensitive is DeviceOrientation when browsing the web on Mobile in a handheld context 【发布时间】:2014-07-17 06:40:39 【问题描述】:

我想确定在加载网页时使用 DeviceOrientation javascript API(不是 orientationchange)读取移动设备方向的机会或前景。

除非我弄错了,否则W3C specs 表示DeviceOrientation 属性只能在事件触发期间读取。即,如果设备根本没有移动,则不会暴露初始状态。

如果是这样,DeviceOrientation 是否足够灵敏,可以在最常见的情况下读取值,即手持设备,而用户等待页面加载,假设手/运动倾斜非常微妙。

【问题讨论】:

【参考方案1】:

在实际设备上进行测试后,我注意到设备方向非常敏感。无论如何,对于我最初的用例。它足够敏感,几乎总是触发,报告alphabetagamma 值在使用任何支持 DeviceOrientation API 的移动浏览器(手机或平板电脑)时都不全为 0,无论您如何使用它(即使它放在桌子上)。

缺点是ondeviceorientation 事件仅在 Webkit/Blink 上的window.load 之后触发。或者在窗口load 事件之后大约 25 毫秒到 100 毫秒,因浏览器和设备而异。而 Firefox 在 DOMContentLoaded 之前的文档的 interactive 状态早期触发事件。

因此,由于缺乏早期检测功能,在initial 设备旋转的上下文中开始渲染网页似乎是不可能的。这是当前 DeviceOrientation API 的一个重大缺陷。

【讨论】:

以上是关于在手持环境中在移动设备上浏览 Web 时,DeviceOrientation 有多敏感的主要内容,如果未能解决你的问题,请参考以下文章

检测是不是使用移动设备(iOS/Android 手机/平板电脑)中的浏览器

第134天:移动web开发的一些总结

检测移动设备的最佳方法是啥?

iOS 和 Android 设备的自动验收测试 [关闭]

当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?

移动端Web开发调试之Chrome远程调试(Remote Debugging)