繁体   English   中英

如何在苹果地图或谷歌地图中打开链接?

[英]How to open links in Apple Maps or Google Maps?

如何在网站上建立链接,首先指向 iOS 应用程序的新 Google 地图中的位置,如果不可用,则恢复为 Apple 地图?

目前,默认功能是maps.apple.com的链接将在 iOS 的苹果地图中打开,在其他设备上的谷歌地图中打开。

最好在 iOS 上反转它,因为大多数用户似乎更喜欢 Google 地图。

我认为单个URL无法做到这一点。

Google Maps for iOS使用comgooglemaps://架构:

https://developers.google.com/maps/documentation/ios/urlscheme

Apple Maps应用程序使用http://maps.apple.com

https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html#//apple_ref/doc/uid/TP40007899-CH5-SW1

我认为你能做的最好的事情就是给用户一个选择,或者只是运行Apple地图,因为你知道它就在那里(如果用户代理是iOS 6)。

您可以使用canOpenURL(_ url: URL) -> Bool来自UIApplication实例的 Bool 方法,让应用程序首先尝试使用 Google 地图的首选选项,如果不可能,请尝试 Apple 地图。 请注意,也无法安装 Apple 地图。

示例 Swift 5

// Guard your URL instances.
guard let googleMapsUrl = URL(string: "https://www.google.com/maps/@42.585444,13.007813,6z"),
      let appleMapsUrl = URL(string: "http://maps.apple.com/?q=Mexican+Restaurant") else {
          print("Error creating URLs")
          return
    }

// Check if link can be opened with Google Maps.
guard UIApplication.canOpenURL(googleMapsUrl) else {
    // Use apple maps.
    UIApplication.shared.open(appleMapsUrl, options: [:], completionHandler: nil)
    return
}

// Use google maps.
UIApplication.shared.open(googleMapsUrl, options: [:], completionHandler: nil)

笔记

在此处的 Google 地图文档中作为示例提供的代码: https://developers.google.com/maps/documentation/urls/ios-urlscheme已弃用。 你应该使用:

UIApplication.shared.open("https://www.url,com", options: [:], completionHandler: nil)

参考: https://developer.apple.com/documentation/uikit/uiapplication/1622961-openurl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM