自动检测所有已安装的地图导航应用程序

pla*_*res 5 ios directions swift turn-by-turn

在iOS苹果地图应用程序中,选择目的地时,苹果地图为您提供了使用任何已安装的地图应用程序获取转弯指示的选项。

苹果地图如何做到这一点?有没有办法在自己的应用中实现类似功能?

一种方法是获取最受欢迎的导航应用程序列表,检查它们是否支持url方案,并使用以下命令检查是否安装了其中的任何一个:

if ([[UIApplication sharedApplication] canOpenURL:url]) {
        // mapping app is installed ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这是不可靠的,因为url方案可能会更改,并且某些映射的转弯应用程序不支持url方案。

提前致谢。

Don*_*Mag 1

这是您要找的吗?

哎呀,可能不是你想要的,但这就是苹果地图的做法。也许在该文档的某个地方(或深入挖掘它)您可能会找到一种方法。

来自苹果的文档:

能够显示点对点方向的 iOS 应用程序可以注册为路线应用程序,并使这些方向可供地图和其他应用程序使用。

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapativity/AddingCapabilities.html#//apple_ref/doc/uid/TP40012582-CH26-SW9