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

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

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

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


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 的检测。


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容