移动Android设备上的HTML5地理位置行为

时间:2013-08-22 12:46:30

标签: javascript android html5 geolocation mobile-devices

我正在尝试在以下设备上使用HTML5地理位置:

  • HTC One X
  • Android 4.1.1
  • WebKit / 534.30(内置浏览器WebKit版本)

在内置浏览器和使用HTML5 Geolocation API的最新版Chrome-app网站上无法找到我。但是,Firefox-app会在几秒钟内找到我。

这是一个问题,因为多平台应用程序开发平台,例如PhoneGap,使用WebViews(=内置浏览器)作为整个应用程序的容器。此外,如果网络应用程序无法执行应该能够执行的操作,普通用户将不会尝试使用不同的浏览器。

我的第一个想法是需要更多时间来找到我,所以我设置了超时5分钟(见帖子底部)。但是,它只会在没有找到我的位置的情况下达到超时。如果我没有设置超时,则永远不会调用回调函数(我等了一个小时)。

我的第二个想法是,可能在我的手机或浏览器设置中的位置请求位置网站被阻止。结果并非如此。

所以我的下一个想法是,从浏览器不遵循W3C标准的意义上来说,这可能是一个编程问题,因此他们的API可能会以不同的方式工作。如果是这样,我如何在这个设备/这些浏览器中检索位置?

由于即使像谷歌这样编码良好的网站也无法使用该API在这些浏览器上获取我的位置,因此它可能不是编程问题。如果确实不是,我应该咨询哪个StackExchange网站? (例如,如果是设备问题?)

我正在使用的API(MDN):

navigator.geolocation.getCurrentPosition(success, error, options);

// Where success and error are callbacks and the options object may contain:
//   enableHighAccuracy - boolean, speaks for itself
//   timeout - maximum amount of milliseconds before one of the callbacks is called 
//   maximumAge - maximum age in milliseconds of cached location

2 个答案:

答案 0 :(得分:0)

您好, 我在同一台设备上遇到了类似的问题:

我将其设为:

{enableHighAccuracy: true}.

弗拉基米尔

答案 1 :(得分:0)

我想这是一个操作系统问题。该手机的最新更新不再存在问题。

我曾尝试过enableHighAccuracy: true选项,但这并没有对我的情况产生任何影响。不过,它确实在其他手机上的精确度方面有很大的不同。