【问题标题】:Which Devices Support Javascript Geolocation via navigator.geolocation?哪些设备通过 navigator.geolocation 支持 Javascript 地理定位?
【发布时间】:2010-11-23 20:37:14
【问题描述】:

iPhone 通过以下调用支持移动 Safari 中的地理定位:

navigator.geolocation.getCurrentPosition(
  function(pos){
    var lat = pos.coords.latitude;
    var long = pos.coords.longitude;
  },
  function(){
    /* Handler if location could not be found */
  }
);

我想建立一个良好的设备列表,这些设备具有以下之一:

  1. 支持此功能开箱即用,或
  2. 通过升级支持此功能,或
  3. 支持地理定位,数据保真度与 Javascript 的其他一些 sn-p 相当。

我只熟悉我自己的设备,所以这是我目前的清单:

开箱即用:

  1. iPhone 3GS

支持,但仅限更新

  1. iPhone 3G
  2. iPhone 2G (?)
  3. 装有 Firefox 3.5 的 PC 或 Mac 电脑

其他一些 sn-p 支持

?

Blackberry、Android 手机等的支持程度如何?

【问题讨论】:

  • 许多设备支持访问 GPS 位置,只是不一定通过navigator.geolocation。你真的只关心那个特定的 API?
  • 嗯,任何通过 Javascript 的东西在技术上都应该没问题,只要你能进行特征检测(我们已经和 XHR 处于同一条船上了吗?)

标签: javascript geolocation gps mobile-phones mobile-website


【解决方案1】:

截至今天,W3C Geolocation API(与 HTML 5 广泛相关,但在技术上不是 HTML 5 的一部分)在以下主要桌面浏览器中得到支持:

  • Firefox(自 3.5 起)
  • Safari(5.0 起)
  • Google Chrome(版本取决于操作系统)
  • Opera(自 10.60 起)
  • Internet Explorer(从 IE 9 开始)

至少有两个移动浏览器实现了 Geolocation API:

  • Safari 移动版(iPhone OS 3.0 起)
  • Android(至少从 Android 1.6 开始)

在所有这些平台上,您应该都可以使用 navigator.geolocation.getCurrentPosition 等。

【讨论】:

    【解决方案2】:

    虽然我认为标准化(顺便提一下)W3C Geolocation API 是一个很好的做法,但值得注意的是,浏览器中还有一些其他选项,如果您需要针对旧平台。

    • Firefox 3.1 支持Geode,它使用非常相似的语法调用navigator.geolocation
    • Lo​​ki 是 Skyhook 构建的插件,适用于 Internet Explorer 6、Internet Explorer 7、Firefox 2、Firefox 3、Safari 和 Opera。语法是substantially different, but still easy
    • Google Gears 提供geolocation API,其语法与 W3C API 语法非常相似。您可以在 Internet Explorer 6+、Firefox 1.5+、Safari、Opera Mobile 和 IE Mobile 上安装 Google Gears。

    【讨论】:

      【解决方案3】:

      来自一个类似的更新主题:

      “我正在开发一个开源库,该库支持所有符合 W3C 标准的支持 javascript 定位的手机。到目前为止,它支持 iPhone、Android、BlackBerry 和一些在浏览器中运行的边缘浏览器平台。该库也可以使用在为诺基亚 OVI 和 Palm WebOS 编写 Web 堆栈独立应用程序时。

      http://code.google.com/p/geo-location-javascript/"

      【讨论】:

        【解决方案4】:

        W3C 版本适用于 android 2.*。在 android 1.6 上,你可以回退到 gears,它的工作方式几乎相同。理论上,W3C 标准也应该适用于 Firefox 移动版 (Fennec),它目前可用于诺基亚的 Maemo 设备,并将成为 MeeGo 的标准。

        【讨论】:

        • 实际上我写了一篇关于此的博客文章,其中包含更多详细信息,地址为:textopiablog.wordpress.com/2010/05/07/… 我自己不是这方面的专家,但有更多信息的链接供任何感兴趣的人使用。
        【解决方案5】:

        您无需拥有最新的手机即可使用 GPS 和 Geolocation API。几乎每个移动浏览器(没有代理服务器)都可以用来从buidin GPS 读取位置。如果您的手机中有 Java 和 GPS – 您可以使用 mobile-gps-web-gate – 请参阅 http://code.google.com/p/mobile-gps-web-gate/

        【讨论】:

          【解决方案6】:

          我知道这是一个老问题,但您可以在此处找到支持地理定位的设备列表:http://www.quirksmode.org/webkit.html。此列表由网站作者维护,因此应保持最新。

          【讨论】:

          • 该页面仅比较基于 Webkit 的浏览器
          【解决方案7】:

          Franson's GPSGate是一个商业产品,可以通过javascript将Windows机器的硬件GPS暴露给任何浏览器。该接口与 W3C 的实现略有不同。

          更新:Express (lite) 版本的 GPSGate 是免费的。

          【讨论】:

          • +1 用于 GPSGate,我们发现这是 Windows 7 桌面版的唯一解决方案,因为没有浏览器向 Geolocation 对象提供硬件 GPS 位置。有一个在 Chrome 中包含支持的举动,但又被删除了,Issue 45535
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多