如何以编程方式检查iPhone中是否安装了应用程序列表

在我的应用程序中,我正在显示应用程序列表。是否可以在iPhone中找到已安装或未安装的应用程序数组。 如果有任何可能性,请在swift中提供相关代码,以检查iPhone中是否安装了应用程序数组。

在过去,您可以将canOpenURL与iHasApp等库一起使用 。 这仅适用于注册自定义深层链接方案的应用程序,但它捕获了大多数重要的应用程序。

但是从iOS 9开始,这种方法似乎有限 – 请参阅如何在iOS9中重置`canOpenURL`限制?

通常,出于隐私原因,您的应用程序不允许知道系统中安装了哪些其他内容。

从您的沙盒应用程序

默认情况下,从Application Layer ,您不能使用私有API来检查设备上安装的其他应用程序。

解决方法

  1. 如果目标第三方应用程序支持URL方案。 您可以使用[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"someScheme://randomText"]]检查它们实现的url方案[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"someScheme://randomText"]]

  2. (不推荐)看一下像/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices LSApplicationWorkspace这样的私有框架。 在allInstalledApplications中有一个名为allInstalledApplications的方法应该可以工作,检查运行时标头以获取更多信息。

关闭主题〜对于MDM设备

使用移动设备管理(MDM)协议,您可以使用InstalledApplicationList命令获取目标设备上已安装应用程序的数组。 以下是对所述MDM命令的响应。 在此处输入图像描述