10
Wie kann ich die neuen MobileSafari-APIs für Gerätebewegungen verwenden, um ein "Shake" -Ereignis zu erfassen?Entdecken Sie einen Shake in iOS Safari mit Javascript?
Wie kann ich die neuen MobileSafari-APIs für Gerätebewegungen verwenden, um ein "Shake" -Ereignis zu erfassen?Entdecken Sie einen Shake in iOS Safari mit Javascript?
dieses ehrfürchtige Blogpost: http://www.jeffreyharrell.com/blog/2010/11/creating-a-shake-event-in-mobile-safari/
die in diesem Beispiel veranschaulicht:
if (typeof window.DeviceMotionEvent != 'undefined') {
// Shake sensitivity (a lower number is more)
var sensitivity = 20;
// Position variables
var x1 = 0, y1 = 0, z1 = 0, x2 = 0, y2 = 0, z2 = 0;
// Listen to motion events and update the position
window.addEventListener('devicemotion', function (e) {
x1 = e.accelerationIncludingGravity.x;
y1 = e.accelerationIncludingGravity.y;
z1 = e.accelerationIncludingGravity.z;
}, false);
// Periodically check the position and fire
// if the change is greater than the sensitivity
setInterval(function() {
var change = Math.abs(x1-x2+y1-y2+z1-z2);
if (change > sensitivity) {
alert('Shake!');
}
// Update new position
x2 = x1;
y2 = y1;
z2 = z1;
}, 150);
}
Excellent. Danke, dass du den Code-Extrakt hinzugefügt hast. Sollte hilfreich sein! – tbeseda
Nur eine Warnung: accelerationIncludingGravity wird nie alle drei Komponenten Null haben. Wenn die Schwerkraft direkt auf eine Achse wirkt, hat diese Achse einen Wert von 9,81. Warum sollten Sie nicht während eines Events nach Shakes suchen? – ughoavgfhw
@hughoavgfhw könnten Sie Ihren Code vorschlagen? – andi