2013-02-11 119 views
0

我试图在Android浏览器上获取地理位置,但没有任何反应。我正在使用三星Galaxy S3,但我不确定我的浏览器版本。 Android版本4.1.2是 这里是我的代码:navigator.geolocation.getCurrentPosition在Android浏览器上失败

if (navigator.geolocation) { 

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

这是我复制并从该网站 粘贴它给我的“navigator.geolocation” 而是一个代码,当谈到“getCurrentPosition”我代码停止工作。 Mobile Chrome正常工作,但事实并非如此。我分享了我的位置,但仍然没有任何反应任何帮助将appriciated。 谢谢。

谢谢大家,我找到了解决方案, 我在一些JavaScript操作后得到了地理位置。我准备在文档准备好之前尝试获取地理位置。它的工作。

+0

您的'displayError'函数是否被调用?你会得到什么错误信息? – fiddler 2013-02-11 11:52:01

+0

不,它不被调用。我想问题是“没有这样的方法调用getCurrentPosition” – 2013-02-11 12:04:04

+1

你检查过吗:http://stackoverflow.com/questions/3397585/navigator-geolocation-getcurrentposition-sometimes-works-sometimes-doesnt? – fiddler 2013-02-11 12:38:08

回答

1

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

0

您是否在清单中提供Internet权限?

<manifest xlmns:android...> 
... 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest> 
+0

我正在寻找答案,我看到了另一个答案,但我不知道在哪里添加这些行。你能告诉我吗? – 2013-02-11 11:46:23

+1

顺便说一下,这不是一个本地的应用程序,我很抱歉,我忘了告诉。 – 2013-02-11 14:19:01

1

好像PhoneGap的与地理位置 一个问题,我有 我使用S3搭载Android 4.1.2相同的问题,PhoneGap的地理定位功能不起作用

0

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

因为我想在页面加载时获取位置,我发现我需要在页面加载后引入非常短的延迟。当我毫不迟疑的时候,我不会遇到任何错误,但我也不会在手机上激活位置协议。这一半秒的延迟解决了这个问题。你可以玩延迟,看看它是否能解决你的问题。 setTimeout(function(){getAutoLocation(true)},500);

我在“getAutoLocation(true)”函数中获取位置。这个setTimeout仅用于引入延迟。

0

我发现一些Android手机(旧的和新的)不能正常运行功能 getCurrentPosition,也许试图保存一些电池。

我打功能watchPosition,然后高精度GPS踢

阅读知道如何使用这些参数正确: http://dev.w3.org/geo/api/spec-source.html#watch-position

在我而言,这工作:

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

希望这可以帮助别人。

相关问题