代码之家  ›  专栏  ›  技术社区  ›  Richard Topchii

无法在iOS应用程序中启动本地谷歌地图-Safari将打开

  •  1
  • Richard Topchii  · 技术社区  · 6 年前

    我在iPhone应用程序中启动谷歌地图应用程序时遇到问题。当应用程序安装在设备上时,代码会在Safari中启动GoogleMaps的Web版本。另一方面,苹果地图原生应用程序成功启动。

    这是我使用的代码:

    @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)
    }
    

    我想,这个问题是非常简单的,但是我仍然没有弄明白如何解决它。

    更新

    即使是谷歌的例子也不适用于iOS 12测试版2: https://developers.google.com/maps/documentation/urls/ios-urlscheme ,这个问题可能与测试版软件的使用有关。

    2 回复  |  直到 5 年前
        1
  •  1
  •   kira4ka    5 年前

    这个问题似乎在上一个iOS版本(12.1.2)中得到了解决。现在,下面的链接可以在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
    
        2
  •  0
  •   Sanket Ray    6 年前

    试试这个:右击 info.plist 文件并选择打开 源代码 . 就在下面 <dict> 加上以下几行,你就可以走了!

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