[英]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
:
我认为你能做的最好的事情就是给用户一个选择,或者只是运行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.