私は、まったく問題なく動作する HTML5 コンパスを持っています。ここで、「疑似デバイス方向対応」ブラウザー (デスクトップ chrome および FF など) と、デバイスの磁力計を使用する iPhone/Android/iPad ブラウザーなどの実際の候補とを区別するスマートな方法が必要です。
私の現在の解決策は、DeviceOrientationEvent とタッチ サポートの基本的なチェックです。
if (window.DeviceOrientationEvent && 'ontouchstart' in window) {
// setup real compass thing, with event.alpha
} else {
// setup some mouse following hack
}
それで十分?「タッチサポートはあるが磁力計がない」デバイスについてはよくわかりません。たとえば、Macブックのクロムにはタッチサポートがあり、偽のデバイスの向きがありますか?