原因:从iOS 9 开始,涉及到平台客户端的跳转,系统会自动到 info.plist
下检查是否设置Scheme。如果没有做相应的配置,就无法跳转到相应的客户端。因此如果客户端集成有分享与授权,需要配置Scheme白名单(LSApplicationQueriesSchemes)。
解决方案:
在 info.plist 增加 key:LSApplicationQueriesSchemes,类型为NSArray。
添加需要支持的白名单,类型为String。
另外,如果应用使用了检测是否安装了某款app,我们会调用canOpenURL, 如果url不在白名单中,即使手机上有这款app,也会返回 NO。
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}