对于openURL返回false而应用程序是否成功打开的情况,有人能想到一个解释吗?
NSString *appUrlPathStr = @"";
NSURL *appUrlPath = [NSURL URLWithString:appUrlPathStr];
if([[UIApplication sharedApplication] canOpenURL:appUrlPath]) {
if ([[UIApplication sharedApplication] openURL:appUrlPath]) {
NSLog(@"app opened");
} else {
NSLog(@"app not opened");
}
}
注意:这里的代码中没有包含url字符串本身。
答案 0 :(得分:2)
我不仅遇到了同样的问题,但是为了让事情变得更糟,其他应用只会在没有暂停或无效(即新开始)时打开
对我来说问题是我没有将我想查询的自定义方案添加到我的Info.plist
文件中。
只要我将其添加到LSApplicationQueriesSchemes
条目,问题就会消失。
有关详细信息,请参阅:http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl/
希望这有帮助!
答案 1 :(得分:-1)
我在iOS 7中看到了同样的问题。我的解决方案是:
1)
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});
或
2)
[self performSelector:@selector(methodToRedirectToURL:) withObject:url afterDelay:0.1];