我的应用正在接收从服务器发送到Apple后端的APN。当通知到达用户的设备时,用户自然可能无法打开应用程序。与此同时,我的服务器可能会推送更多通知。它们都包含一些在处理通知时很重要的用户数据。那怎么处理呢? iOS不会捆绑并给我一批,是吗?
以下是我将如何处理它的方法,其中没有一个是简单的。
didReceiveRemoteNotification
中所有需要的数据。
或 didReceiveRemoteNotification
未被调用,因此app必须从服务器获取所有需要的数据。
或 didReceiveRemoteNotification
中提取数据时都会检查新内容。还有别的吗?我想念的更简单吗?
答案 0 :(得分:1)
4号是正确的方法。除了iOS7之外,无法保证在收到APN时您的任何应用代码都会运行。因此,当您的应用启动时,它必须与您的服务器核实它应显示的任何新信息。
最简单的方法是将此代码总是询问您的服务器是否要显示最新信息,而不是依赖于APN中的信息。仅使用APN中的信息来确定要导航到的新信息,以便应用程序显示用户点击的内容。
这已经在iOS7中发生了变化,您可以在推送消息到达时使用remote-notification
后台模式启动。见https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveRemoteNotification:fetchCompletionHandler: