[javascript] navigator.geolocation.getCurrentPositionはAndroidのGoogle Chromeで動作しません



Answers

回避策があります :watchPosition呼び出しを行い、watchIDをクリアする前にこれを5秒待機してラップします。 以下のコード。

var options = { enableHighAccuracy: true, maximumAge: 100, timeout: 60000 };
if( navigator.geolocation) {
   var watchID = navigator.geolocation.watchPosition( gotPos, gotErr, options );
   var timeout = setTimeout( function() { navigator.geolocation.clearWatch( watchID ); }, 5000 );
} else {
   gotErr();
}

私は "オプション"の値やタイムアウトの遅延を現時点で抱えていませんでしたが、上記のコードは私が試したすべてのプラットフォーム上の正確な位置情報を返します。

Question

このコード:

navigator.geolocation.getCurrentPosition(
                    function(position) {
                        alert(position.coords.latitude, position.coords.longitude);
                    },
                    function(error){
                        alert(error.message);
                    }, {
                        enableHighAccuracy: true
                        ,timeout : 5000
                    }
            );

http://jsfiddle.net/FcRpM/は私のラップトップでGoogle Chromeで動作しますが、モバイルHTCのS(アンドロイド4.1、GPSオフ、モバイルネットワーク経由のロケーション、Wi-Fi対応)はWi-Fi経由でインターネットに接続しています。

  1. デフォルトのブラウザはうまく動作します。
  2. Google Chrome、Opera、Yandex.browser for androidが "タイムアウト期限切れ"で失敗します。

他のアンドロイドアプリは私が正しいと判断します。




ちょうど追加する

"ジオロケーション"
"ロケーション"

アクセス許可の下で 私のために働いた。 :-)




error3の解決策を何時間も探してから、私は自分の携帯電話を再起動するだけで、ジオロケーションは通常通りに動作します。 残念...






Related