openURL:options:completionHandler:一些问题

时间:2018-09-12 04:04:13

标签: ios objective-c

我需要使用openURL:options:completionHandler:函数来打开第三方应用程序(例如qqmusic,网易,天猫等)。当我的应用程序处于前台时,它可以工作,但是当我的应用程序进入后台时,此功能不起作用。有人有解决方案吗?

这是我的代码:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"qqmusic://"]]){
    NSURL *url = [NSURL URLWithString:@"qqmusic://"];
    if (@available(iOS 10.0, *)) {
        [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {}];
    } else {
        [[UIApplication sharedApplication] openURL:url];
    }
}

1 个答案:

答案 0 :(得分:1)

您是否有可能接受一个仅告诉您您想做什么的答案的机会?因为这是不可能的。 Apple禁止此类事情是苹果的故意设计决定。

openURL仅在您的应用程序处于前台状态时有效。您不能在后台调用该方法。而且也没有其他API具有类似的效果。

我使用iPhone已有多年了,而在后台时,我再也没有看到其他应用程序打开URL。作为iPhone用户,我对此感到非常高兴。如果我只是阅读电子邮件,那真是太糟糕了,突然,由于某些后台应用程序打开了音乐应用程序,它出现了。而且我无法找出哪个应用程序执行了此操作。这不会发生,因为不可能发生这种事情。