iOS - 使用APNS处理推送通知

Eri*_*c V 15 iphone apple-push-notifications ios

考虑到我在iPhone上收到推送通知.

怎么了:

  1. 如果应用程序已启动:是否有办法获取有效负载?我在屏幕上看到通知了吗?
  2. 如果应用程序未启动,是否有办法获取有效负载?

谢谢你的回答

Eva*_* Wu 34

首先推送通知并不"强",如果您只是让通知持续足够长时间(例如电话关闭多天),它将被丢弃.您需要执行一些自定义后端处理以保留通知中发送的内容.

UIApplicationDelegate协议中有application:didFinishLaunchingWithOptions:.如果您的应用是由用户在推送通知的警报点击右键启动的,则launchOptions绑定到方法调用的字典将包含有关该通知的信息; 如果您的应用程序已经运行,那么application:didReceiveRemoteNotification:(也在委托协议中)将被调用.

所以,

  • 如果应用程序已启动,然后您实现,application:didReceiveRemoteNotification:则获得有效负载.否则,没有任何反应.

  • 如果在发送通知时未启动应用程序,则用户点击通知警报并启动您的应用程序,您的应用程序将获得有效负载(如果实施)application:didFinishLaunchingWithOptions:.否则,你什么也得不到.

  • 我注意到在今天之前的某个时间(07/03/2012),不再使用"launchOptions".打开应用程序后,将调用`didReceiveRemoteNotification`. (3认同)