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

Mc.*_*ver 2 iphone xcode objective-c ipad ios

我试图检测到设备上安装了Instagram的,以前我用这个代码来检测一个应用程序,但它似乎并不与iOS 6或非JB设备的工作:

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

    [self checkingInstalledApp];
}

else

{

NSLog(@"no instagram installed");

}
Run Code Online (Sandbox Code Playgroud)

我查看这个问题,但他的回答给了我很多错误!任何解决方案

bor*_*den 5

这是无效代码有两个原因.

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

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

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


Ale*_*nte 5

自定义URL方案打开instagram://,然后是以下参数之一,将打开我们的应用程序并执行自定义操作.例如,对于相机,您可以将iPhone上的用户定向到自定义URL instagram://相机.

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

来自Instagram iPhone Hooks