我正在尝试在Android浏览器上获取地理位置,但没有任何反应。我正在使用三星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操作后得到了地理位置。在文档准备好之前,我试图获取地理位置。它奏效了。
答案 0 :(得分:1)
似乎PhoneGap存在地理位置问题 我有同样的问题 我正在使用S3与Android 4.1.2,phonegap地理位置功能不起作用
答案 1 :(得分:1)
为了获得没有错误的地理位置,你必须在使用地理定位提供的值之前使代码块工作,因为操作是异步执行的,在这个问题中我通过在其他地方之前加载我的地理定位脚本找到了解决方案。 js文件。这解决了我的问题,这个问题的另一个技巧是,当你给浏览器“读取”你的位置提供“始终”权限时,地理定位更加稳定。第一次加载后,您永远不会遇到地理位置错误。
答案 2 :(得分:0)
您是否在清单中提供了Internet权限?
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
答案 3 :(得分:0)
我知道这有点旧,但它一直在搜索,所以我想我会添加一个帮助我的提示。
因为我希望在页面加载时获得正确的位置,所以我发现在页面加载后我需要引入很短的延迟。当我没有延迟时,我不会得到任何错误,但我也不会激活手机上的位置协议。这半秒延迟解决了这个问题。你可以玩延迟,看看它是否解决了你的问题。
setTimeout(function(){getAutoLocation(true)},500);
我在“getAutoLocation(true)”函数中获取位置。此setTimeout仅用于引入延迟。
答案 4 :(得分:0)
我发现有些Android手机(旧的和新的)无法正常运行该功能
getCurrentPosition
,也许是想节省一些电池。
我使用了watchPosition
功能,然后启动了高精度GPS。
阅读本文以了解如何正确使用这些参数: http://dev.w3.org/geo/api/spec-source.html#watch-position
就我而言,这有效:
{
maximumAge: 0, timeout: 2000, enableHighAccuracy: true
}
希望这有助于某人。