三星Galaxy Devices无法使用geolocation.getCurrentPosition

Bra*_*don 8 jquery android galaxy samsung-mobile

好的,所以我一直在寻找对这个问题的充分回应.我有一个navigator.geolocation.getCurrentPosition用于获取用户位置的Web应用程序.

三星Galaxy设备上的本机浏览器几乎总是遇到getCurrentPosition代码问题.我已尝试使用回调和超时的此代码的各种变体,但它始终是相同的问题.很多人都记录了这个问题,有些人表示重启设备会起作用(有时重启确实有效,但并非总是如此 - 并且告诉用户重启设备的警报似乎超出了一定程度).

有没有人想出一个使用getCurrentPosition在三星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>
Run Code Online (Sandbox Code Playgroud)

此外,这里还有一个关于该问题的讨论链接:https://groups.google.com/forum/#!topic/phonegap/ESrHAjFHgFU

Lon*_*Dao 21

我和几周前的问题完全一样.我试着在互联网上研究大约2周,看看我能找到的所有解决方案.毕竟,我发现:

  1. 如果您的目标手机上从未打开过Google地图,则此功能无效.
  2. 重置GPS状态,然后重新启动手机.它可能有所帮助.
  3. 如果步骤2不起作用,请重置GPS的状态,在"日期时间"设置中自动启用"获取时区",然后重新启动手机.

根据我的知识,代码没有任何问题.事实上,我的代码与您的代码几乎相同.它不仅发生在Galaxy设备上,也发生在某些HTC上.我在Galaxy S2,Galaxy Note 2,HTC Nexus One,HTC One X和HTC Incredible S上遇到了这个问题.我认为这应该是Android设备和代码竞争之间的问题.

干杯,