我的自定义应用在其中一个页面上有一张地图。如果您单击该地图(显示患者的位置),则应该打开Google地图应用程序,无论您身在何处,都可以指向该患者位置。为此,我使用:
http://maps.google.com/maps?saddr=patientlocation&daddr=myaddress [其中患者位置和 myaddress 是长/拉]
在大多数手机上,它按预期工作。它会打开谷歌地图的应用程序,并加载路线。
但由于我不知道的原因,有些手机会尝试打开Safari并转到Google地图网站,即使我的Google地图应用已安装并且是最新的。这是一个问题,因为当您不在实际应用程序中时,导航效果不佳。 我曾尝试重新启动手机,卸载/重新安装我的应用,卸载/重新安装Google地图应用,但没有任何事情可做..
我已通过电子邮件将该链接发送到某些手机。 如果我点击本机iOS电子邮件应用程序中的链接,它将打开Safari并加载Google地图网站。 如果我点击Gmail应用中的链接,则会打开Google地图应用。
我对Apple / iOS的处理方式感到有点迷茫。
有人可以帮忙吗? 谢谢!
答案 0 :(得分:1)
首先确保您已在 Info.plist <LSApplicationQueriesSchemes
中添加 comgooglemaps (必填)和 googlechromes (可选) /强>
现在要打开加载了路线的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应用,它将重定向到浏览器。如果您还想在浏览器中加载路线,请在提示时向浏览器提供您所在位置的权限。