iOS:从我的自定义应用中打开地图会在Safari中打开Goog​​le地图而不是Google地图应用

时间:2017-07-14 16:33:36

标签: ios google-maps safari

我的自定义应用在其中一个页面上有一张地图。如果您单击该地图(显示患者的位置),则应该打开Goog​​le地图应用程序,无论您身在何处,都可以指向该患者位置。为此,我使用:

http://maps.google.com/maps?saddr=patientlocation&daddr=myaddress [其中患者位置 myaddress 是长/拉]

在大多数手机上,它按预期工作。它会打开谷歌地图的应用程序,并加载路线。

但由于我不知道的原因,有些手机会尝试打开Safari并转到Google地图网站,即使我的Google地图应用已安装并且是最新的。这是一个问题,因为当您不在实际应用程序中时,导航效果不佳。 我曾尝试重新启动手机,卸载/重新安装我的应用,卸载/重新安装Google地图应用,但没有任何事情可做..

我已通过电子邮件将该链接发送到某些手机。 如果我点击本机iOS电子邮件应用程序中的链接,它将打开Safari并加载Google地图网站。 如果我点击Gmail应用中的链接,则会打开Goog​​le地图应用。

我对Apple / iOS的处理方式感到有点迷茫。

有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

首先确保您已在 Info.plist <LSApplicationQueriesSchemes中添加 comgooglemaps (必填)和 googlechromes (可选) /强>

enter image description here

现在要打开加载了路线的googlemaps,请在您的操作上调用以下功能。

我已经采取了一个虚拟纬度,经度分别为28.5239008,77.0846414,并保持saddr和daddr相同,从当前位置开始。您可以根据自己的要求提供自己的saddr和daddr。

func openGoogleMaps() {
    if UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!) {
        UIApplication.shared.open(URL(string:
            "comgooglemaps://?saddr=&daddr=28.5239008,77.0846414&zoom=14&directionsmode=driving")!, options: [:]) { (completed:Bool) in
                print("Opened googlemaps")
        }
    } else {
        print("Can't use google maps. Opening browser");
        if UIApplication.shared.canOpenURL(URL(string: "https://maps.google.com/?saddr=&daddr=28.5239008,77.0846414")!) {
            UIApplication.shared.open(URL(string: "https://maps.google.com/?saddr=&daddr=28.5239008,77.0846414")!, options: [:], completionHandler: nil)
        }
    }
}

如果您的设备中没有GoogleMaps应用,它将重定向到浏览器。如果您还想在浏览器中加载路线,请在提示时向浏览器提供您所在位置的权限。