【问题标题】:openURL is not working when App is in background in iOS当应用程序在 iOS 中处于后台时,openURL 不起作用
【发布时间】: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


【解决方案1】:

这是不可能的,您不能从后台状态启动另一个应用程序。如果应用程序在后台,那么您将无法从 iPhone/iPad 屏幕处理您的应用程序事件。您必须唤醒您的应用程序。您可以使用本地通知。

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 2019-01-04
    • 1970-01-01
    • 2018-08-03
    • 2021-11-28
    • 2017-08-11
    相关资源
    最近更新 更多