2017-07-14 61 views
0

我的自定义应用在其中一个页面上有地图。如果您点击该地图(即显示病人的位置),则应该打开Goog​​le地图应用,并确定从哪个位置到该患者位置的方向。为此,我使用:iOS:从我的自定义应用打开地图,在Safari中打开Goog​​le地图而不是Google地图应用

http://maps.google.com/maps?saddr=patientlocation&daddr=myaddress [其中patientlocationmyaddress长/ LAT]

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

但由于某些原因,我不知道,有些手机会尝试打开Safari并转到Google地图网站,即使我的Google地图应用已安装并且是最新的。这是一个问题,因为当你不在实际的应用程序中时导航不太好。 我试图重新启动手机,卸载/重新安装我的应用程序,卸载/重新安装谷歌地图应用程序,但没有什么会做..

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

我对Apple/iOS如何处理这个问题有点失落。

有人可以帮忙吗? 谢谢!

回答

0

首先确保你已经添加comgooglemaps在你的Info.plistLSApplicationQueriesSchemes(强制性)和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应用程序不在您的设备中,它将重定向到浏览器。如果您还想在您的浏览器中加载路由,请根据提示提供您所在位置的许可权。

相关问题