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 - iOS https认证

iphone - 在iPhone SDK中播放声音?

iphone - 可以使用哪些编程语言来开发 iPhone、iPod Touch 和 iPad (iOS) 应用程序?

iphone - 目前使用的每个 iOS 版本有多少台?

iphone - NSInvocationOperation 调用下载 XML 文件以存储在本地的方法

iphone - 带有 AudioUnit 的 ffmpeg

iphone - 应用程序关闭时如何从后端发送电子邮件?

iphone - 控制不进入完成 block

ios - 根据数组中的项目数量创建 View

objective-c - [OBJ-C] [iOS]从NSArray获取 float -问题