这是我的理解是,该系统将要么叫你被关闭或在后台运行,并允许你提取之前显示系统警报给用户。
我要下载一些数据显示给用户,当他们点击一个推送通知。
我看到正在执行我的获取活动,同时推动被显示给用户。 它允许用户点击此通知之前,我们已经完成了数据读取启动应用程序。
这个对吗?
这是我的理解是,该系统将要么叫你被关闭或在后台运行,并允许你提取之前显示系统警报给用户。
我要下载一些数据显示给用户,当他们点击一个推送通知。
我看到正在执行我的获取活动,同时推动被显示给用户。 它允许用户点击此通知之前,我们已经完成了数据读取启动应用程序。
这个对吗?
我没有使用推送通知和背景提取模式自己的机会,
但是根据文档 :
the system sends the notification to your app (launching it if needed)
and gives it a few moments to process the notification before displaying
anything to the user. You can use those few moments
to download content related to the push notification and
be ready to display it to the user.
因此,正如我理解你想有一些时间的东西呈现给用户之前作出反应(下载数据)的通知,而不是同时通知显示
该文档不提什么被认为是“片刻”(不,我已经看到了)。
所以也许在下载操作比那些“几分钟”采取更多
希望这可以帮助
在iOS7使用所谓的“沉默”推送通知,你可以从你的服务器发送特定的沉默推。 您需要添加额外的重点内容,可在您的APS字典
"aps" : {
"alert" : "alert",
"sound" : "sound",
"badge" : badge,
"content-available" : 1
}
然后,你需要设置在你的项目中的两个背景模式:远程通知和背景提取。
现在每个远程推送将呼吁
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
你可以在这里实现任何后台逻辑。 例如,你可以开始一些获取过程中(不再那么30秒!),显示出在目前的自定义本地通知(它替代了标准的远程屏幕上推送)或取完成。
确保推送通知允许在通知中心您的应用,您允许后台应用刷新在设置您的应用程序/通用。
另一个重要的事情是,沉默的推动工作,直到你从后台手工卸载你的应用程序(在home键双击)。
请注意,这个沉默的机制运行错误,直到iOS7.1
你是在控制选择是否即使使用第三方像UrbanAirShip展现AlertView。 任何如何,您可以决定不表现出来,启动背景完成块存取。 在此之后,你可以使用本地通知,以显示你所需要的永远的数据显示。
行为是在iOS的7和下面有点不同。
如果你能提供一些更多的代码/执行我也许能帮助更多一点。