使用 canOpenURL 来检测是否安装了被指定的 APP

准备:现在有两个 APP  A 和 B,现在要在 B 里面检测是否安装了A。

方法:使用 [[UIApplication sharedApplication] openURL:url] 来判断设备是否安装了 APP A

一般来说,在 APP 中如果自定了 URL Types ,如下图:

使用 canOpenURL 来检测是否安装了被指定的 APP_第1张图片


NSString *urlString = @"first://";

NSURL *url = [NSURL URLWithString:urlString];

if ([[UIApplication sharedApplication] canOpenURL:url]) {

        [[UIApplication sharedApplication] openURL:url]

}

在 APP B中使用 [[UIApplication sharedApplication] openURL:url] 就能判断设备是否安装了 A 了,如果您的 iOS 系统是 9 以下,恭喜您,您应该已经成功了,但是不幸的是,笔者已经升级到 Xcode 7 与 iOS 9 了,说到这里,您大概也已经猜到了,结果肯定是失败的,失败的错误信息是:"first://myparams" - error: "This app is not allowed to query for scheme first", 这是 9 的新特性,为了用户的隐私安全,在检测的 APP (也就是这里的 APP B )中,必须将 APP A 设置成白名单之后才能通过 canOpenURL 的检测。


使用 canOpenURL 来检测是否安装了被指定的 APP_第2张图片

注意这里需要添加 白名单 的是  APP B,而不是被检测的 APP A,笔者就是给弄反了,折腾了好久才弄出来。 

你可能感兴趣的:(使用 canOpenURL 来检测是否安装了被指定的 APP)