首页>Program>source

是否可以通过编程方式找出我的iOS设备上安装的所有应用的名称? 有相同的API吗?

感谢帮助

最新回答
  • 2021-1-11
    1 #

    否,由于沙盒环境,iOS应用程序无法访问/有关其他应用程序的信息。

  • 2021-1-11
    2 #

    是的,有可能获得列表 所有已安装的应用程序

    -(void) allInstalledApp
    {    
        NSDictionary *cacheDict;
        NSDictionary *user;
        static NSString *const cacheFileName = @"com.apple.mobile.installation.plist";
        NSString *relativeCachePath = [[@"Library" stringByAppendingPathComponent: @"Caches"] stringByAppendingPathComponent: cacheFileName];
        NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent: @"../.."] stringByAppendingPathComponent: relativeCachePath];
        cacheDict    = [NSDictionary dictionaryWithContentsOfFile: path];
        user = [cacheDict objectForKey: @"User"];
        NSDictionary *systemApp=[cacheDict objectForKey:@"System"];
    }  
    

    systemApp Dictionary 包含所有与系统相关的应用程序的列表 和 user Dictionary 包含其他应用信息。

  • 2021-1-11
    3 #

    不是来自设备.但是,您可以从桌面上窥视iTunes库。

  • 2021-1-11
    4 #

    有一些方法可以在没有越狱设备的情况下完成此操作,并且不会使您的应用程序被拒绝。
    1.获取当前正在运行的进程的列表,请参见此答案.您需要将流程名称转换为应用名称。
    2.检查是否有任何应用程序已使用UIApplicationDelegate canOpenURL注册了唯一的URL方案.有几个站点在编目已知的url方案,这是最好的方案.

    如果应用当前未运行,并且未注册自定义网址方案,则这些方法将不会检测到该应用.我有兴趣听到一种方法,它可以在应用商店中得到更好的应用.

  • 2021-1-11
    5 #

    您可以通过使用 canOpenURL检查是否已安装应用程序来完成此操作 方法或通过检查后台进程,并将其与您感兴趣的应用程序的名称进行匹配。

  • java:为什么将空引用print为"空"
  • iPhone 5 + iOS6将如何决定是否必须在信箱模式下运行应用程序