是否有可能在目标c中打开正在运行的后台应用程序

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

想要做这样的事情

- (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]; } 

在应用程序进入后台模式时,无法以编程方式打开应用程序。 但使用URLscheme,您可以从浏览器打开应用程序。

你只需要设置URLscheme如下截图: –

  • 首先你需要打开项目 – >目标 – >信息

在这里输入图像说明

  • 点击这个屏幕截图底部的信息之后:

在这里输入图像说明

  • 点击URLtypes你得到的结果如下截图:

在这里输入图像说明

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

在这里输入图像说明

点击主页button保存并最小化您的应用程序并打开您的Safari浏览器。 只需键入mytestApp:// ,然后按以下屏幕截图保存: –

在这里输入图像说明

所有的过程工作正常,如:

在这里输入图像说明

我认为它可能通过使用远程通知(ios7新的背景方法),而不显示uialertview界面…..

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

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

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

  aps { content-available: 1 alert: {...} } 

在networking上有很多可用的背景获取的东西,你可以理解它是如何工作在这个链接。