根据Apple指南:
“作为呈现的通知的结果,用户点击警报的操作按钮或点击(或单击)应用程序图标。如果在运行iOS的设备上轻按了操作按钮,则系统将启动该应用程序,调用其委托的application:didFinishLaunchingWithOptions:方法(如果已实现);它将传入通知有效负载(用于远程通知)或本地通知对象(用于本地通知)。
如果在运行iOS的设备上点击了应用程序图标,则该应用程序将调用相同的方法,但不提供有关通知的信息。如果在运行Mac OS X的计算机上单击该应用程序图标,则该应用程序将调用委托的applicationDidFinishLaunching:方法,该委托可以在其中获取远程通知有效负载。”
我的问题是,假设用户从提供商那里收到了3-4个推送通知,并且所有通知都存储在Apple的通知中心中。如果用户点击通知警报,则他/她可以轻松地在应用程序中获取通知数据。但是,如果用户点击iPhone上的应用程序图标,则如何获取与所有先前通知相关的所有数据。
提前致谢!
您不能,您只会收到有关用于打开应用程序的通知的信息。
因此,如果用户打开您的应用程序,并且您的应用程序有通知,则您将无法从中检索它们。
解决方法可能是还跟踪服务器上的通知并在应用程序中进行处理。因此,服务器会跟踪已读取的通知。这就是Facebook的做法。