检测 html5 移动设备中的抖动

Posted

技术标签:

【中文标题】检测 html5 移动设备中的抖动【英文标题】:Detecting shaking in html5 mobile 【发布时间】:2012-09-08 20:23:19 【问题描述】:

我现在正在用 html5 构建一个网络应用程序,它需要能够检测用户何时摇动手机以及他们摇动手机的速度。我一直在浏览,但似乎找不到任何关于如何实现这一点的例子。我知道html5有一个加速度计可以检测手机的方向,但是它是如何检测用户摇动它的速度的呢?

我也在我的 iPhone 上对此进行了测试,尽管理想情况下我希望它也能在 android 设备上运行。想法?例子也很棒。谢谢!

【问题讨论】:

你可以使用这个jQuery plugin。您还可以阅读此内容...html5rocks.com/en/tutorials/device/orientation 顺便说一句,您的移动浏览器必须支持该事件。 这实际上是我能找到的唯一参考资料之一。我只是无法从中获得足够的动力继续前进。不过谢谢! 【参考方案1】:

shake.js 看起来是一个很好的库——它提供了一个自定义的“摇动”事件,并且在现代浏览器上受支持。这是一个example setup from their documentation,关于如何实现它:

<script src="shake.js"></script>
<script>
var myShakeEvent = new Shake(
    threshold: 15, // optional shake strength threshold
    timeout: 1000 // optional, determines the frequency of event generation
);

// Start listening to device motion
myShakeEvent.start(); 

// Register a shake event listener on window with your callback
window.addEventListener('shake', shakeEventDidOccur, false); 

//function to call when shake occurs
function shakeEventDidOccur () 

    //put your own code here etc.
    alert('shake!');

</script>

请注意,在不安全的浏览环境(例如http://)中,这在某些浏览器中不起作用

【讨论】:

看来该项目可能不再有支持了。阅读其中一个问题,您可能需要request permission to use the device motions APIs 才能使库正常工作。

以上是关于检测 html5 移动设备中的抖动的主要内容,如果未能解决你的问题,请参考以下文章

如何检测手机或移动设备? [复制]

如何在 Swift 中测量 iOS 设备上的抖动量?

如何使用 CMDeviceMotion 检测我的设备运行速度?

在响应式网站上检测对移动设备的最大视频分辨率支持

在响应式网站上检测对移动设备的最大视频分辨率支持

检测移动设备中的当前地理位置