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>
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>
不,没有。协议是否geo
可用不取决于浏览器,而取决于底层操作系统。Android 的浏览器不知道它是否支持它,它会询问子系统是否有geo
URI 的处理程序,如果有,则打开它。知道系统支持自定义 uri 的唯一方法是尝试打开一个链接,看看它是否有效。如果不完全打断用户,就没有办法自动执行此操作。
苹果的 maps.apple.com 就是一个很好的例子。他们使用服务器端 UA 嗅探将 maps.apple.com 重定向到可用的最佳站点。
尝试在任何 Mavericks 浏览器上访问http://maps.apple.com/?q=cupertino会导致他们向maps://
url(Maps.app 应用程序的自定义 URI)发送 302。对于 iOS 设备也是如此。如果它是一个无法识别的浏览器,它将重定向到相应的 maps.google.com 地址,因为他们没有自己的地图网络存在。