在HTML5移动端检测摇晃

8
我目前正在构建一个HTML5的Web应用程序,需要能够检测用户何时摇动手机以及他们摇动的速度。我一直在浏览,但似乎找不到任何可以实现这个功能的示例。我知道HTML5有一个加速计可以检测手机的方向,但它如何检测用户摇动手机的速度呢?
此外,我正在我的iPhone上测试这个应用程序,虽然理想情况下我希望它也能在Android设备上运行。你有什么想法吗?如果有示例就更好了。谢谢!

你可以使用这个jQuery插件。同时,你也可以阅读这篇文章...http://www.html5rocks.com/en/tutorials/device/orientation/ 顺便提一下,该事件必须由你的移动浏览器支持。 - napolux
这实际上是我能找到的唯一参考资料之一。但我无法从中获得足够的信息来继续前进。不过还是谢谢! - Jessica Stanley
1个回答

2

shake.js 看起来是一个不错的库 - 它提供了自定义的“摇动”事件,并在现代浏览器上得到支持。这里有一个从他们的文档中的示例设置,说明了如何实现它:

<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://),此方法在某些浏览器中无法正常工作。

看起来这个项目可能不再得到支持。阅读其中一个问题,你可能需要请求使用设备动作API的权限才能使库正常工作。 - Kyle Pollard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接