繁体   English   中英

获取iPhone上已安装应用的列表

[英]Get list of installed apps on iPhone

有没有办法(一些API)来获取iPhone设备上已安装的应用程序列表。

在搜索类似的问题时,我发现了一些与url registration相关的内容,但我认为必须有一些API来执行此操作,因为我不想对应用程序做任何事情,我只想要列表。

不,应用程序是沙盒,Apple接受的API不包含任何可以让您这样做的内容。

但是,您可以测试是否安装了某个应用程序:

  • 如果已知应用程序处理某种类型的URL
  • 通过使用[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"thisapp://foo"]

您可以从此处获取应用和URL方案列表。

对于越狱设备,您可以使用下一段代码:

-(void)appInstalledList
{
 static NSString* const path = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";

NSDictionary *cacheDict = nil;
BOOL isDir = NO;
if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] && !isDir) 
{
    cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];

    NSDictionary *system = [cacheDict objectForKey: @"System"]; // First check all system (jailbroken) apps
    for (NSString *key in system)
    {
        NSLog(@"%@",key);
    }
    NSDictionary *user = [cacheDict objectForKey: @"User"]; // Then all the user (App Store /var/mobile/Applications) apps

    for (NSString *key in user)
    {
        NSLog(@"%@",key);
    }
    return;
}
NSLog(@"can not find installed app plist");                   
}

对于非越狱设备,我们可以使用被称为“ ihaspp ”的第三方框架,也可以使用其免费和苹果接受。 他们还提供了如何集成和如何使用的良好文档。 可能这对你有帮助。 祝好运!!

https://github.com/danielamitay/iHasApp

好吧,不确定在给出最后一个答案时是否可以使用它(iOS 6之前)此外这个是时间密集的,但很简单:进入设置> Gen.>使用。 目前至少使用的第一类是存储。

它将显示部分应用列表。 在此部分列表的底部是一个显示“显示所有应用”的按钮。 点击它,你将不得不通过屏幕浏览,并截取屏幕截图(快速锁定按钮和主页按钮截图)。 我现在正在这样做,我的iPhone上有数百个应用程序。 所以这需要我一段时间。 但至少在这个过程结束时,我将拥有所有应用程序的图像。

您可以使用以下方法执行此操作:

 Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
 SEL selector = NSSelectorFromString(@"defaultWorkspace");

 NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];

 SEL selectorALL = NSSelectorFromString(@"allApplications");

 NSMutableArray *Allapps = [workspace performSelector:selectorALL];

 NSLog(@"apps: %@", Allapps);

然后通过访问每个元素并将其拆分,您可以获得您的应用名称,甚至是Bundle Identifier。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM