如何以编程方式获取iOS上安装的“路由应用”列表?
这背后的原因是,iOS提供了大量的导航应用程序,而且我不想维护手动列表。
Apple提供了自iOS 6以来的新功能,可将您的应用注册为路由应用,如此处所述http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/ProvidingDirections/ProvidingDirections.html#//apple_ref/doc/uid/TP40009497-CH8-SW7
如果您随后在常规地图应用中启动路由,则会显示一个能够路由您的应用列表,如您所见:
我找不到获取清单的方法。当然,我可以通过使用canOpenURL来查询是否安装了一个特定的应用程序:在UIApplication中,但这将非常繁琐。
我知道这一定是可行的,因为着名的"Where to?"应用程序提供了这样的功能。
任何提示都赞赏!
答案 0 :(得分:0)
由于iOS 6沙盒,没有真正的方法可以执行此操作,因为您无法访问不在您自己的地址空间中的任何内容。地图应用程序可以执行此操作,因为Apple保留访问其手机上所需数据的权利,包括您已安装的应用程序。
答案 1 :(得分:0)
好的,我自己试一试。也许是“Where to?”的作者确实维护一个路由应用程序列表,并通过查询该应用程序的url方案来检查是否安装了应用程序。对于他找到的所有应用程序,他都会显示“ROUTE”按钮。对于他没有找到的所有应用,他提供了一个链接到应用商店的条目。
当然,这不会列出所有路由应用程序,但它会通过拥有一个很长的自编列路由应用程序列表来创建它。
编辑:这是“何处?”的屏幕截图: