2

私は、まったく問題なく動作する 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ブックのクロムにはタッチサポートがあり、偽のデバイスの向きがありますか?

4

1 に答える 1

3

そのままで動作するようですが、私は間違っていました。Mac Book の chrome は「本当のコンパス」セクションには入っていません。たぶん、それをテストする必要がありました。

if (window.DeviceOrientationEvent && 'ontouchstart' in window) {
    // setup real compass thing, with event.alpha
    document.body.innerHTML = "haz!";
} else {
    // setup some mouse following hack
    document.body.innerHTML = "nope";
}

自分で確認してください:http://jsfiddle.net/benzkji/J58ef/

deviceorientation が有効なクロムを備えたタッチ対応の windows ラップトップが表示されている場合に何が起こるかはそのままです。おそらく、deviceorientation イベントの「絶対」プロパティを確認してください: https://developer.mozilla.org/de/docs/WebAPI/Detecting_device_orientation

于 2014-02-28T14:21:54.710 に答える