当应用程序是前台和后台时区分推送通知处理程序

时间:2010-11-06 07:28:21

标签: iphone iphone-sdk-3.0 ios4 push-notification apple-push-notifications

据说(如果我错了,请纠正我)如果应用程序在前台我们必须处理“didReceiveRemoteNotification”中的推送通知,并且当用户点击时,如果应用程序在后台使用“didFinishLaunchingWithOptions”应用程序的“查看”按钮。由于我没有手机进行测试,我想知道我是否正确处理这个问题。

1)当我点击推送通知中的“查看”按钮时会调用什么?

2)假设我在前台运行应用程序并同时推送通知。我会获得推送通知提醒吗?如果是这样,如果用户点击查看按钮会发生什么?

3)在这个帖子How to handle push notifications if the application is already running?中,它说:

  

“alert”键不会直接在userInfo字典下,你需要获取另一个名为“aps”的字典,然后从“aps”字典中获取“alert”或“body”“

这是真的吗?

4)当用户点击“查看”按钮时,我需要推送到某个视图。因此,我需要在两种方法中处理该代码吗?

谢谢

1 个答案:

答案 0 :(得分:2)

这个Apple vid中推送通知调用的方法有一个很好的概述:http://developer.apple.com/videos/iphone/#video-advanced-pushnotification - 请确保您访问在iTunes中下载完整版本。

此直接链接可能有效:http://developer.apple.com/itunes/?destination=adc.apple.com.3391495696.03391495702.3416205190?i=1378617410

  1. 无论哪种方式,一般的想法是,如果您的应用程序不在前台,点击您的视图按钮将触发didFinishLaunchingWithOptions,如果它是前台应用程序,您将获得didReceiveRemoteNotification。

  2. 我认为你不会得到警报。将调用didReceiveRemoteNotification方法,如果需要,您可以自行显示UIAlert。

  3. 是的 - 那是真的。

  4. 是的,但我认为您可以通过创建专门用于处理视图的第三种方法来简化此操作。您可以从didFinishLaunching(仅当通过通知启动)和didReceiveRemoteNotification中调用此函数。这样,如果您的应用程序需要启动,您可以有时间进行任何其他设置,您可能需要这样做才能使应用程序完全正常工作(加载保存的数据,init标签栏控制器或其他类似的东西) )。

  5. 祝你好运