从特定时间运行的后台打开我的应用程序..
想要做这样的事情
- (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];
}
答案 0 :(得分:13)
当您申请进入后台模式时,无法以编程方式打开应用程序。但是使用URL方案,您可以从浏览器打开App。
您只需将URL方案设置为以下屏幕截图: -
点击“主页”按钮并打开Safari浏览器,保存并最小化您的应用程序。然后输入您在保存之前设置的 mytestApp:// ,如下面的屏幕截图所示: -
所有流程都运行良好,如: -
答案 1 :(得分:0)
我认为可以通过使用远程通知(ios7新的背景方法)而不显示uialertview界面.....
答案 2 :(得分:0)
根据iOS限制,我们无法在没有用户互动的情况下打开任何应用。如果您需要打开任何应用程序,那么您可以强制用户购买发送推送通知,用户可以看到您的通知,并可以单击查看该应用程序。
另外,如果要从其他应用程序或链接打开应用程序,您可以按照上面解释的Nitin Gohel之类的URL架构方法进行操作。
如果您需要在没有用户交互的情况下获取某些数据,则可以使用通常称为后台提取的静默推送通知。您需要在后台模式下启用推送通知,并使用 application:didReceiveRemoteNotification:fetchCompletionHandler:方法来处理应用内部。此外,我们需要在发送推送通知时在服务器端进行一些调整
aps { content-available: 1 alert: {...} }
网络上有很多关于后台提取的内容,您可以了解它在this链接中的工作方式。