0

Androidブラウザでジオロケーションを取得しようとしていますが、何も起こりません。Samsung Galaxy S3を使用していますが、ブラウザのバージョンがわかりません。Androidのバージョンは4.1.2です。これが私のコードです。

if (navigator.geolocation) {

            var timeoutVal = 10 * 1000 * 1000;
            navigator.geolocation.getCurrentPosition(
              displayPosition,
              displayError,
              { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
            );
        }

これは私がこのサイトからコピーして貼り付けたコードで、「navigator.geolocation」が表示されますが、「getCurrentPosition」になるとコードが機能しなくなります。モバイルChromeは正常に動作しますが、そうではありません。私は自分の立場を共有しましたが、それでも何も起こりません。どんな助けでも適用されます。ありがとう。

解決策を見つけたすべての人に感謝します。いくつかのjavascript操作の後にジオロケーションを取得していました。ドキュメントの準備ができる前に、ジオロケーションを取得しようとしました。そしてそれはうまくいった。

4

5 に答える 5

2

これは少し古いことは知っていますが、検索で出てくるので、役立つヒントを追加すると思いました.

ページの読み込み時に正しい場所を取得したいので、ページの読み込み後に非常に短い遅延を導入する必要があることがわかりました。遅延がなければ、エラーは発生しませんでしたが、電話でロケーション プロトコルを有効にすることもありませんでした。この 0.5 秒の遅延により、問題は解決しました。遅延をいじって、問題が解決するかどうかを確認できます。

setTimeout(function() {getAutoLocation(true)},500);

「getAutoLocation(true)」関数で場所を取得します。この setTimeout は、遅延を導入するためだけに存在します。

于 2014-11-07T12:36:20.120 に答える
1

PhoneGapにジオロケーションの問題があるようですAndroid4.1.2でS3を使用しているのと同じ問題がありますが、phonegapジオロケーション機能が機能しません

于 2013-03-17T15:44:10.817 に答える
1

一部の Android フォン (古いものと新しいもの) では、機能が正しく動作しないことがわかりました getCurrentPosition。おそらく、バッテリーを節約しようとしているのでしょう。

この機能watchPositionを試してみると、高精度の GPS が作動しました。

パラメータを適切に使用する方法については、これをお読みください: http://dev.w3.org/geo/api/spec-source.html#watch-position

私の場合、これはうまくいきました:

{
  maximumAge: 0, timeout: 2000, enableHighAccuracy: true
}

これが誰かに役立つことを願っています。

于 2015-10-23T19:53:20.977 に答える
1

エラーなしで位置情報を取得するには、操作が非同期で実行されるため、位置情報によって提供される値を使用する前にそのコード ブロックを機能させる必要があります。この質問では、他の .js ファイルの前に位置情報スクリプトを読み込むことで解決策を見つけました。これは私の問題を解決し、この問題の別のトリックは、ブラウザがあなたの場所を読み取るための「常に」許可を与えると、ジオロケーションがより安定して動作することです。初めてロードした後、地理位置情報エラーが発生することはありません.

于 2013-03-27T10:50:35.197 に答える
0

マニフェストでインターネット許可を与えましたか?

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
于 2013-02-11T11:16:36.990 に答える