我的自定义应用程序的其中一个页面上有一张 map 。如果您点击该 map (显示患者的位置),它应该会打开 Google map 应用程序,并显示从您所在的位置到该患者位置的方向。为此,我使用:
http://maps.google.com/maps?saddr=patientlocation&daddr=myaddress [其中患者位置和我的地址是长/纬度]
在大多数手机上,它都能按预期工作。它会打开 Google map 应用程序并加载路线。
但由于我不知道的原因,有些手机会尝试打开 Safari 并访问 Google map 网站,即使我的 Google map 应用已安装且是最新的。这是一个问题,因为当您不在实际应用程序中时,导航效果不太好。 我尝试过重新启动手机、卸载/重新安装我的应用程序、卸载/重新安装 Google map 应用程序,但没有任何效果..
我已通过电子邮件将该链接发送到一些手机。 如果我点击 native iOS 电子邮件应用程序中的链接,它会打开 Safari 并加载 Google map 网站。 如果我点击 Gmail 应用中的链接,它会打开 Google map 应用。
我对 Apple/iOS 如何处理这个问题有点迷惑。
有人可以帮忙吗? 谢谢!
最佳答案
首先确保您在 Info 中的 LSApplicationQueriesSchemes
中添加了 comgooglemaps(强制)和 googlechromes(可选) .plist.
现在要打开加载了路线的 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 应用程序,它将重定向到浏览器。如果您也想在浏览器中加载路线,请在出现提示时向浏览器提供您的位置权限。
关于iOS : Open maps from my custom app opens Google Maps in Safari instead of Google Maps app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107814/