如何检查是否安装了苹果地图

How to check if Apple Maps is installed

有人知道如何检查是否安装了 Apple 地图吗?我在文档中找不到任何内容。

使用 iOS10 用户可以删除 Apple 地图应用程序。而对于 Google 地图,我们可以使用 UIApplication.shared.canOpenURL() 来检查它是否已安装。我不知道有这样的东西可以检查 Apple 地图。

当然可以检查用mapItem.openInMaps()打开MKMapItem是否失败——但这对提前检查没有帮助。

简单的回答是目前这是不可能的。

原因是Apple Maps应用程序没有被删除,只是应用程序图标从主屏幕上被删除(见Mike D评论)。

此应用程序 (maps://) 的自定义 url 仍处于注册状态,因此 sharedApplication 可以打开此 url。但是当您尝试打开此 url 并且应用程序图标从主屏幕中删除时,用户会收到有关通过 AppStore 恢复该应用程序的通知。当用户想要恢复应用程序时,它会立即恢复(不下载任何内容)。

MKMapItem.openMaps 的结果意味着只有用户决定是否要打开 Apple 地图。

恕我直言,Apple 地图无法定期卸载,因为它们的数据正被其他应用程序重复使用。

在当前版本中,即 11.2,您似乎可以从 phone 中删除 Apple 地图。但不幸的是,如果你这样做:

 if (UIApplication.shared.canOpenURL(URL(string: "maps://")!)) {
        //do whatever you need to do here.
 }

它仍然 returns true

但无论如何它确实可以优雅地处理导航。就我而言,我为用户提供了 Apple 地图和 Google 地图之间的选择器。当 Apple Maps 不存在时,它会为我提供这个,恕我直言,这很好,因为用户不会离开该应用程序,并且可以根据需要选择不同的选项: