openURL返回false但app正在成功打开

时间:2015-08-23 13:09:20

标签: ios objective-c openurl

对于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字符串本身。

2 个答案:

答案 0 :(得分:2)

我不仅遇到了同样的问题,但是为了让事情变得更糟,其他应用只会在没有暂停或无效(即新开始)时打开

对我来说问题是我没有将我想查询的自定义方案添加到我的Info.plist文件中。

只要我将其添加到LSApplicationQueriesSchemes条目,问题就会消失。

query custom scheme

有关详细信息,请参阅: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];