以编程方式检测已安装的应用程序

时间:2013-05-23 07:11:26

标签: iphone ios objective-c xcode ipad

我正在尝试在我的设备上检测已安装的Instagram,以前我使用此代码来检测应用程序,但它似乎不适用于iOS 6或非JB设备:

NSString *filePath = @"/Applications/Instagram.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{

    [self checkingInstalledApp];
}

else

{

NSLog(@"no instagram installed");

}

我检查this question,但他的回答给了我很多错误!任何解决方案?

2 个答案:

答案 0 :(得分:5)

这是无效代码,原因有两个。

1)它尝试与其沙箱之外的区域进行交互。

2)它依赖于未记录的实现细节(可能安装位置已移动或应用程序名称已更改?)

您需要做的是使用canOpenURL:上的UIApplication方法来确定系统是否可以通过其自定义方案启动应用程序(注意:如果应用程序没有自定义方案,那么您就出局了好运)

答案 1 :(得分:5)

  

自定义网址计划打开Instagram://,然后是以下参数之一,将打开我们的应用并执行自定义操作。   例如,对于相机,您可以将iPhone上的用户定向到   自定义网址instagram://相机。

NSURL *instagramURL = [NSURL URLWithString:@"instagram://location?id=1"];
    if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
        [[UIApplication sharedApplication] openURL:instagramURL];
    }

来自Instagram iPhone Hooks