4

私は現在、モバイル デバイスでヒットする可能性が高い webapp を作成しています。ある時点で、HTML5 の getCurrentPosition() を使用してユーザーの位置を取得する必要があります。できるだけ早く大まかな修正を行いたいので、enableHighAccuracy パラメーターを false に設定してこの関数を呼び出します。

ほとんどの場合、これは期待どおりに機能します。ただし、一部の Android デバイスでは、ブラウザーは明らかにこの属性を無視し、常に GPS 位置情報を取得しようとします (通知バーに GPS アイコンが表示されます)。面白いことに、設定で GPS 位置情報を手動で無効にしても、これが発生します。

これはブラウザーに依存していないようです。Chrome、Firefox、Opera で同じコードをテストしましたが、次のような単純なコードで発生します。

<!doctype html>
<html>
<head>
    <script type="text/javascript">
        function getLocation() {

            if (navigator.geolocation)
            {
                navigator.geolocation.getCurrentPosition(onLocationReceived, onLocationError, {timeout: 5000, enableHighAccuracy: false});
            }
            else
                alert("Geoloc not supported by your browser");
        }

        function onLocationReceived(position) {
            alert("Location retreived! " + position.coords.latitude + ", " + position.coords.longitude + " (" + position.coords.accuracy + ")");

        }

        function onLocationError(error) {
            alert("Received an error! " + error.message + "(" + error.code + ")");
        }
    </script>
</head>
<body>
    <button onclick="getLocation();">Get location</button>
</body>

これまでのところ、これは HTC One と Xiaomi 1S で発生しています。この問題に遭遇したことがありますか? 多分それは既知のバグですか?

ありがとう。

4

1 に答える 1

0

はい、Android Lollipop と Chrome 43 で同じことを経験しています。highAccuracy なしで getCurrentPosition を実行し、同時に highAccuracy を有効にして watchPosition を起動できることを望んでいました。

しかし、いいえ。両方の呼び出しが同じ (遅い) 時間に返され、同じ (GPS) 結果が返されます...

https://bugzilla.mozilla.org/show_bug.cgi?id=1057076

http://www.hyam.net/blog/archives/1432

于 2015-09-11T10:57:21.107 に答える