在手持环境中在移动设备上浏览 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】:在实际设备上进行测试后,我注意到设备方向非常敏感。无论如何,对于我最初的用例。它足够敏感,几乎总是触发,报告alpha
、beta
和gamma
值在使用任何支持 DeviceOrientation API 的移动浏览器(手机或平板电脑)时都不全为 0,无论您如何使用它(即使它放在桌子上)。
缺点是ondeviceorientation
事件仅在 Webkit/Blink 上的window.load
之后触发。或者在窗口load
事件之后大约 25 毫秒到 100 毫秒,因浏览器和设备而异。而 Firefox 在 DOMContentLoaded
之前的文档的 interactive
状态早期触发事件。
因此,由于缺乏早期检测功能,在initial 设备旋转的上下文中开始渲染网页似乎是不可能的。这是当前 DeviceOrientation API 的一个重大缺陷。
【讨论】:
以上是关于在手持环境中在移动设备上浏览 Web 时,DeviceOrientation 有多敏感的主要内容,如果未能解决你的问题,请参考以下文章
检测是不是使用移动设备(iOS/Android 手机/平板电脑)中的浏览器
当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?