是否可以在 Objective c 中打开正在运行的后台应用程序

Posted

技术标签:

【中文标题】是否可以在 Objective c 中打开正在运行的后台应用程序【英文标题】:Is it possible to open running background app on in Objective c 【发布时间】:2014-05-13 13:18:50 【问题描述】:

在特定时间从后台打开我的应用程序..

想做这样的事情

 - (void)applicationDidEnterBackground:(UIApplication *)application

  timer = [NSTimer scheduledTimerWithTimeInterval:10
                                                      target:self
                                                    selector:@selector(timerFired:)
                                                    userInfo:nil
                                                     repeats:NO];


- (void)timerFired:(NSTimer*)timer


NSLog( @"yes it is running...");
PickUpCallViewController  *call=[[PickUpCallViewController alloc]initWithNibName:@"PickUpCallViewController" bundle:nil];

navi=[[UINavigationController alloc]initWithRootViewController:call];
[[navi navigationController] setNavigationBarHidden:YES animated:YES];
window.rootViewController = navi;

[window makeKeyAndVisible];

【问题讨论】:

这是不可能的。按照苹果的规定,未经用户许可,不得打开APP。 :( .. 任何技巧...做到这一点 进行 WEB SERVICE 调用并发送推送通知。 【参考方案1】:

当您应用程序进入后台模式时,无法以编程方式打开应用程序。但是使用 URL-scheme 你可以从浏览器打开应用程序。

你只需要像下面的截图那样设置 URL 方案:-

首先你需要打开project-->Target-->info

点击后您在底部找到的信息如下图所示:

点击 URL Type 你得到如下截图的结果:

点击(+)并设置URL-Schemes如下:

点击主页按钮并打开您的 Safari 浏览器,保存并最小化您的应用程序。只需输入您正在设置的 mytestApp://,然后保存为以下屏幕截图:-

所有过程都可以正常工作,例如:-

【讨论】:

【参考方案2】:

我认为在不显示uialertview界面的情况下使用远程通知(ios7新后台方法)是可能的.....

【讨论】:

如果你有一些代码..请分享..提前谢谢【参考方案3】:

根据 iOS 限制,我们无法在没有用户交互的情况下打开任何应用。如果您需要打开任何应用程序,那么您可以强制用户购买发送推送通知,用户可以看到您的通知并可以点击查看应用程序。

对于从另一个应用程序或从链接打开应用程序,您可以按照上面解释的 Nitin Gohel 的 URL 架构方法。

如果您需要在没有用户交互的情况下获取某个数据,那么您可以使用通常称为后台获取的静默推送通知。您需要在后台模式下启用推送通知,并在应用程序内部使用 application:didReceiveRemoteNotification:fetchCompletionHandler: 方法进行处理。此外,我们需要在发送推送通知时在服务器端进行一些调整

    aps  content-available: 1 alert: ... 

网络中有更多关于后台获取的资料,您可以在this 链接中了解它的工作原理。

【讨论】:

以上是关于是否可以在 Objective c 中打开正在运行的后台应用程序的主要内容,如果未能解决你的问题,请参考以下文章

是否可以创建在 Objective C 中手动开发的核心数据实体的快速扩展?

我可以使用 Core Bluetooth 打开在 Objective-c 中关闭的应​​用程序吗?

如何在 Objective C 中执行 chmod()

如何在 Objective C 中使用 Safari 打开表单?

在 Objective-C 中处理大量音频样本

检测PNG文件是不是在Objective C中损坏