【发布时间】:2014-08-05 07:01:28
【问题描述】:
当应用程序在后台时,我试图从我的应用程序在 Safari 中打开一个 URL,下面是我的代码
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:strURL]];
我的应用在调试过程中遇到了上述行,但没有使用给定的 URL 打开 Safari。
【问题讨论】:
-
UIKit 调用只能在主线程上运行。我认为因为这是在后台线程上运行的,所以 Safari 仍会访问 URL,但您的应用程序仍处于活动状态。稍后尝试打开 Safari,看看它是否加载了 URL。解决方案是将其放在主线程上,从而在代码运行时离开您的应用程序。这听起来不像你想要的,抱歉。如果你想在你的应用中访问 URL,你可以展示一个 UIWebView。
-
if([[UIApplication sharedApplication]canOpenURL:url]) { [[UIApplication sharedApplication]openURL:url]; }
-
@MohitPopat:我尝试在 MainThread 上运行上述代码行,尽管它不起作用并且我们的客户不想在 UIWebView 中显示,他们只喜欢 Safari。
-
你试过了吗
system([[NSString stringWithFormat:@"uiopen \"%@\"", myUrlToOpen] UTF8String]); -
此命令不适用于模拟器。它只适用于越狱设备
标签: ios iphone ios5 safari uiapplication