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

标签 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" key will not be there directly under the userInfo dictionary, you need to get another dictionary with name "aps" and then get the "alert" or "body" from "aps" dictionary"

这是真的吗?

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

谢谢

最佳答案

在此 Apple 视频中,对推送通知调用的方法进行了很好的概述: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. 是的,但我认为您可以通过创建专门设计来处理您的 View 的第三种方法来简化此操作。您可以从 didFinishLaunching(仅当它通过通知启动)和 didReceiveRemoteNotification 中调用此函数。这样,如果您的应用程序需要启动,您可以有时间进行任何其他设置,以便应用程序能够立即运行(加载保存的数据、初始化选项卡栏 Controller 或其他类似的内容) )。

祝你好运

关于iphone - 当应用程序处于前台和后台时区分推送通知处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112330/

相关文章:

iphone - 如何使用 CALayer 或 CoreGraphics 函数绘制角度渐变?

javascript - iPhone SDK 中的脚本

iphone - 加载某些网页时 UIWebview 崩溃

iphone - 如何将 "String-Calculation-Row"WITH 操作数转换为 double ?

iphone - 使用 Image Magick 对 iPhone 中的图像进行边缘检测

iphone - 当我尝试读取 NSString 时得到 "EXC_BAD_ACCESS"

ios - 将应用程序上传到应用程序商店,支持 iPad,稍后支持 iPhone

ios - 如何为uiscrollview添加页面控件?

iphone-sdk-3.0 - NSFetchedResultsController 错误 : The fetched object at index 248 has an out of order section name

iphone - 如何在后台运行时播放声音?