无法在 iOS 应用程序中启动本机 Google 地图 - 改为打开 Safari

Unable to launch native Google Maps within the iOS app - Safari opens instead

我无法从 iPhone 应用程序中启动 Google 地图应用程序。当应用程序安装在设备上时,代码会在 Safari 中启动 Web 版本的 Google 地图。另一方面,Apple Maps 本机应用程序成功启动。

这是我使用的代码:

@IBAction func openMap(_ sender: Any) {
  let lat: Double = -37.8218956215849
  let long: Double = 144.9599325656891

  let appleString = "https://maps.apple.com/?daddr=\(lat),\(long)" // Apple Maps - successfully launches an app
  let googleString = "https://www.google.com/maps/dir/?api=1&destination=\(lat)%2C\(long)" // Google Maps - launches a Web version
  let selectedString: String = googleString // Change accordingly
  let url = URL(string: selectedString)!
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

我想,这个问题简单得离谱,但我仍然没有想出如何解决它。

更新

甚至 Google 的示例也不适用于 iOS 12 Beta 2: https://developers.google.com/maps/documentation/urls/ios-urlscheme,问题可能与 Beta 软件的使用有关。

试试这个:右键单击 info.plist 文件并 select 打开 源代码 。在 <dict> 正下方添加以下行,您就可以开始了!

<key>LSApplicationQueriesSchemes</key>
<array>
<string>comgooglemaps</string>
</array>

这个问题似乎已在上一个 iOS 版本 (12.1.2) 中得到解决。现在以下 link 在 iPhone 上工作:

https://www.google.com/maps/dir/Current+Location/51.5230369,-0.08225500000003194

作为适用于 iOs 的 /dir api 的替代解决方案,您可以使用 /search :

https://www.google.com/maps/search/?api=1&query={your_lat},{your_lon}

https://www.google.com/maps/search/?api=1&query=28.6139,77.2090