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

HTML5 Geolocation behaviour on mobile Android device

本文关键字:定位 HTML5 Android 移动      更新时间:2023-09-26

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

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

在内置浏览器和最新版本的Chrome-app上,使用HTML5 Geolocation API的网站将无法找到我。然而,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

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

我将其设置为:

{enableHighAccuracy: true}.

Vladimir

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

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