8

わかりました。私はかなり長い間、この問題に対する適切な対応を探していました。navigator.geolocation.getCurrentPositionユーザーの位置を取得するために使用する Web アプリケーションがあります。

Samsung Galaxy デバイスのネイティブ ブラウザでは、ほとんどの場合、getCurrentPosition コードに問題があります。コールバックとタイムアウトを使用して、このコードのあらゆる種類のバリエーションを試しましたが、常に同じ問題です。多くの人がこの問題を文書化しており、デバイスの再起動が機能することを示している人もいます (再起動が機能する場合もありますが、常に機能するとは限りません。ユーザーにデバイスを再起動するように通知するアラートはばかげているように思えます)。

getCurrentPosition を使用して Samsung Galaxy デバイスで動作する確実な方法を見つけた人はいますか? これが私が取り組んでいるものです...

<script>

$(document).ready(function(){

if( navigator.geolocation ) {
    navigator.geolocation.getCurrentPosition( success, fail );
}

else {
     alert("Sorry, your browser does not support geolocation services.");
}

function success(position) {

    window.location = "mobile_set_coordinates.php?user_lat=" + position.coords.latitude + 
    "&user_lon=" + position.coords.longitude + "&accuracy=" + position.coords.accuracy;
}

function fail() {
    // Could not obtain location
}

});

</script>

また、この問題に関するディスカッションの 1 つへのリンクは次のとおりです: https://groups.google.com/forum/#!topic/phonegap/ESrHAjFHgFU

4

6 に答える 6

1

私にとっては、Chrome が問題のようです。ブラウザは、HTTP のような安全でないオリジンを許可していません。HTTPS 経由でデータを転送することで解決する必要があります ( Chromium を参照)。別のブラウザで試してみると、Galaxy S7 Edgeで動作しました。

于 2016-05-11T13:27:42.687 に答える
1

Galaxy GT-N8013 タブレットでも同じ問題が発生しました。getCurrentPosition は Android では機能していないようですが、iOS では機能します。この問題を解決するには、まずタイムアウトを増やしました。次に、Google マップ アプリを開きます。3 番目に、タブレットを再起動します。その後動作します。

$cordovaGeolocation.getCurrentPosition({timeout: 30000, enableHighAccuracy: false})
于 2015-11-19T07:45:23.037 に答える