0

我正在尝试在 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 操作后,我得到了地理位置。我试图在文档准备好之前获取地理位置。它奏效了。

4

5 回答 5

2

我知道这有点旧,但它不断出现在搜索中,所以我想我会添加一个对我有帮助的提示。

因为我想在页面加载时获得正确的位置,所以我发现我需要在页面加载后引入一个非常短的延迟。当我没有延迟时,我不会收到错误,但我也不会激活手机上的定位协议。这半秒的延迟解决了这个问题。你可以试试延迟,看看它是否能解决你的问题。

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

我在“getAutoLocation(true)”函数中获得了位置。此 setTimeout 仅用于引入延迟。

于 2014-11-07T12:36:20.120 回答
1

似乎PhoneGap的地理位置有问题我有同样的问题我在Android 4.1.2上使用S3,phonegap地理定位功能不起作用

于 2013-03-17T15:44:10.817 回答
1

为了获得没有错误的地理位置,您必须在使用地理位置提供的值之前使该代码块工作,因为操作是异步执行的,在这个问题中,我通过在其他 .js 文件之前加载我的地​​理位置脚本找到了解决方案。这解决了我的问题,这个问题的另一个技巧是,当您授予浏览器“始终”读取您的位置的权限时,地理位置工作更加稳定。首次加载后,您永远不会遇到地理定位错误。

于 2013-03-27T10:50:35.197 回答
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 回答
0

您是否在清单中授予 Internet 权限?

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