【问题标题】:Deferentiating the push notification handler when application is foreground and background当应用程序处于前台和后台时,取消推送通知处理程序
【发布时间】:2010-11-06 07:28:20
【问题描述】:

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

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

2) 假设我在前台运行应用程序并同时收到推送通知。我会收到推送通知警报吗?如果是这样,如果用户单击“查看”按钮会发生什么?

3) 在这个线程How to handle push notifications if the application is already running? 它说:

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

这是真的吗?

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    在这个 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 调用它。这样,如果您的应用程序需要启动,您就有时间进行任何其他设置,以使应用程序从一开始就可以正常工作(加载保存的数据、初始化标签栏控制器或其他类似的东西) )。

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2018-07-31
      • 2018-07-04
      相关资源
      最近更新 更多