Is it possible to listen for an iPhone (or any mobile phone with accelerometer) shake event with JavaScript? You know like shaking the iPhone to shuffle the next song in iTunes I want to call a JS function on my website when the iPhone got shaken.
Not as a straight web app, no. If you wrap your web app in PhoneGap, it exposes accelerometer and other app-only features to the site running within it, but the downside is that people have to actually download your app - they can't just browse to a site in Safari.
In the latest iOS update (4.2) the accelorometer is now accessible from Javascript.
See: http://www.mobilexweb.com/blog/safari-ios-accelerometer-websockets-html5
Here's an elegant implementation of shake detection using the accelerometer if anyone is looking for it:
I just implemented the above in my web app which now has controls that appear on the page only after a device shake occurs. Very easy to implement and cleanly described.
https://github.com/alexgibson/shake.js
It is also worth noting that the iOS simulator's shake gesture doesn't trigger the event but a genuine device shake does.
来源:https://stackoverflow.com/questions/2202216/javascript-listen-for-iphone-shake-event