是否可以在 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 中关闭的应用程序吗?