加速度センサー
加速度センサーは、iOSとAndroidではブラウザー提供のJavascriptのAPIの値が変わる
ちなみに jQueryMobileでは、加速度センサーは非対応
加速度センサーの値は、
devicemotion
というブラウザーのイベントから取得する
var onDeviceMotion = function(e){ accel = e.accelerationIncludingGravity; var accelX = accel.x; var accelY = accel.y; var accelZ = accel.z; }; window.addEventListener('devicemotion',onDeviceMotion,true);
addEventListener()でイベントをハンドリングするonDeviceMotion関数を
devicemotionイベントにバインドする
onDeviceMotionでは、
受け取ったイベントeから
加速度メーターの値になる
accelerationIncludingGravity
を取得している
accelerationIncludingGravityには
x
y
z
という変数名で、各軸方向の加速度が格納されている
注意点として、devicemotionイベントは、
非常に短い間隔で発生しているため
実質的には常に最新の加速度が取得できるけど
イベントの発生頻度が高いため
イベントハンドラの中で重い処理は避けた方がよい
あと、AndroidとiOSでは加速度センサーの正負の値が逆になる