Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios openURL返回false,但应用程序正在成功打开_Ios_Objective C_Openurl - Fatal编程技术网

Ios openURL返回false,但应用程序正在成功打开

Ios openURL返回false,但应用程序正在成功打开,ios,objective-c,openurl,Ios,Objective C,Openurl,有人能想出一个解释来解释openURL返回false但应用程序成功打开的情况吗 NSString *appUrlPathStr = @""; NSURL *appUrlPath = [NSURL URLWithString:appUrlPathStr]; if([[UIApplication sharedApplication] canOpenURL:appUrlPath]) { if ([[UIApplication sharedApplication] openURL:appUrl

有人能想出一个解释来解释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字符串本身。

我所经历的逻辑解释:

我查看了设备日志,注意到我正在尝试打开的应用程序在到达前台之前会弹出日志并卡住。(此外,它发生在原始应用程序处于前台时)

因此,openURL挂起并达到超时,然后返回false,我试图打开的应用程序最终打开

结论,我需要检查我正在打开的应用程序,看看它为什么会在激活前挂起


谢谢大家,我希望它能帮助其他人。

我在iOS 7上也看到过同样的问题。我的解决办法是:

(一)

(二)


我不仅遇到了同样的问题,更糟糕的是,另一个应用程序只有在没有暂停或不活动的情况下才会打开(即重新启动)

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

我一把它添加到
lsapplicationqueryschemes
条目中,问题就消失了

有关详细信息,请参阅:


希望这有帮助

如果您用包含实际URL的准确代码更新了问题,这会有所帮助。现在,我添加了代码……您是在真实设备上还是在模拟器中进行了测试?真实URL可能是问题中最重要的部分。@rmaddy,请允许我不同意您的看法。URL是有效的,工作正常。我用模拟器和真实设备测试了它。非常有趣的文章。谢谢你的链接,我不知道这个特殊性。
dispatch_async(dispatch_get_main_queue(), ^{
   [[UIApplication sharedApplication] openURL:url];
});
[self performSelector:@selector(methodToRedirectToURL:) withObject:url afterDelay:0.1];