【问题标题】:Cordova iOS does not open map from geo linkCordova iOS 无法从地理链接打开地图
【发布时间】:2016-03-29 09:15:19
【问题描述】:

我正在使用 Cordova 和 Ionic 开发混合应用程序。起初我为 Android 开发。我的应用程序包含 geo:tel: 链接。在 Android 上,一切正常。 geo: 链接将打开谷歌地图或 Waze,tel: 链接将打开电话。

但是,在 iOS 上,tel: 链接仍然有效,但 geo: 链接无效。当我点击它时,什么也没有发生。当我查看 Xcode 时,它​​说:Failed to load webpage with error: The URL can’t be shown

我该如何解决?

【问题讨论】:

  • ios没有geo url scheme,google maps网站url应该打开google maps app,apple maps网站url或者maps:// scheme应该打开apple maps app
  • @jcesarmobile 感谢您的评论。那么,我只需要将geo: 替换为maps:// 就可以了?
  • @jcesarmobile 尝试使用maps:,也不起作用....您能否举一些例子以便更好地理解?谢谢。
  • 您使用的是哪个科尔多瓦版本?我刚刚尝试了一个新的科尔多瓦项目,它工作正常<a href="maps://?ll=1.5149818510303,110.35436153412&q=test">map link</a>developer.apple.com/library/ios/featuredarticles/…

标签: android ios cordova google-maps ionic-framework


【解决方案1】:

在 iOS 上您需要使用“地图:”

在 Android 上,您可以使用“geo:”或“http://maps.google.com/maps

在这两种情况下,您可能都需要inappbrowser pluing

var url = "http://maps.google.com/maps"; 
if (device.platform.toLowerCase() == "ios") {   
  url = "maps:" 
} 
url + "?q=1.5149818510303,110.35436153412"; 

然后添加带有target="_system" 的地图链接,这将向inappbrowser 插件发出信号以在外部打开它。

<a href="{{ url }}" target="_system">map link</a>

【讨论】:

    【解决方案2】:

    我写了一个方法来替换所有 geo: href 在不同于 android 的设备上。在 android 中,geo: 标签比直接打开谷歌地图运行得更好,因为它可以打开 Waze、Uber、谷歌地图和其他地图应用程序的选项。

    使用cordova设备插件运行:

    if(device.platform.toLowerCase != 'android'){
        $('a').each(function(i,el){
            if($(el).attr('href').indexOf("geo:") == 0){
                $(el).attr(
                    'href',
                    $(el).attr('href').replace(
                        'geo:',
                        'http://maps.google.com/maps?q='
                    )
                );
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      相关资源
      最近更新 更多