检测地理支持

时间:2013-11-05 10:44:31

标签: javascript modernizr polyfills progressive-enhancement graceful-degradation

有没有办法用JavaScript检查客户端浏览器是否支持GEO-URI-scheme

我想将不支持的浏览器的坐标显示为地图的链接

<a href='http://osm.org/#map=18/52.51627/13.37769'>Berlin</a>

以及支持的浏览器(如智能手机)作为其本机应用的链接。

<a href='geo:52.51627,13.37769'>Berlin</a>

1 个答案:

答案 0 :(得分:6)

不,没有。无论geo协议是否可用,都取决于浏览器,而不是底层操作系统。 Android的浏览器不知道它是否可以支持它,它询问子系统是否有geo URI的处理程序,如果是,则打开它。知道系统支持自定义uri的唯一方法是尝试打开链接,看看它是否有效。如果没有完全打断用户,就无法自动执行此操作。

最好的方法就是Apple的maps.apple.com。他们使用服务器端UA嗅探将maps.apple.com重定向到可用的最佳站点。

尝试在任何特立独行的浏览器上转到http://maps.apple.com/?q=cupertino将导致他们向maps://网址发送302(Maps.app应用的自定义URI)。 iOS设备也是如此。如果它是无法识别的浏览器,它将重定向到相应的maps.google.com地址,因为它们没有自己的地图网络存在。