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

时间:2014-05-13 13:18:51

标签: ios objective-c xcode5 nsnotifications localnotification

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

想要做这样的事情

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

3 个答案:

答案 0 :(得分:13)

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

您只需将URL方案设置为以下屏幕截图: -

  • 首先,您需要打开项目 - >目标 - >信息

enter image description here

  • 点击此处点击您在Bottom找到的信息,如下截图:

enter image description here

  • 点击网址输入您的结果,如下面的屏幕截图:

enter image description here

  • 点击(+)并按以下方式设置网址方案:

enter image description here

点击“主页”按钮并打开Safari浏览器,保存并最小化您的应用程序。然后输入您在保存之前设置的 mytestApp:// ,如下面的屏幕截图所示: -

enter image description here

所有流程都运行良好,如: -

enter image description here

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

另外,如果要从其他应用程序或链接打开应用程序,您可以按照上面解释的Nitin Gohel之类的URL架构方法进行操作。

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

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

网络上有很多关于后台提取的内容,您可以了解它在this链接中的工作方式。