0

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

  • 宏达一 X
  • 安卓 4.1.1
  • WebKit/534.30(内置浏览器WebKit版本)

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

这是一个问题,因为多平台应用程序开发平台,例如 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
4

2 回答 2

0

原来是操作系统的问题,我猜。该手机的最新更新不再存在此问题。

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

于 2013-10-22T15:56:16.463 回答
0

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

我将其设置为:

{enableHighAccuracy: true}.

弗拉基米尔

于 2013-10-22T10:45:26.853 回答