当我的应用程序处于后台时,仅当我触摸顶部通知横幅时才会处理推送通知

ane*_*yzm 8 push-notification ios

我已经实施了

application:didReceiveRemoteNotification:
Run Code Online (Sandbox Code Playgroud)

在收到推送通知时将数据存储在我的应用程序中.

但是,当我的应用程序处于后台并且收到通知时,仅当我触摸顶部显示的通知横幅时才会存储数据:

在此输入图像描述

相反,如果我触摸应用程序图标以重新打开它,则不会存储通知的内容:

在此输入图像描述

由于我仅在使用分发配置文件时才收到通知,因此我不确定是否application:didReceiveRemoteNotification:仅在我将通知横幅推到顶部时才会调用.

我认为它总是在收到通知时调用,而不是在用户对设备执行操作后调用.

更新.我不知道这是否有用,但是,只是为了让你知道,我还没有实现任何这些方法:

– applicationDidEnterBackground:
– applicationWillEnterForeground:
- applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)

ane*_*yzm 1

我想我已经找到原因了。来自文档:

\n\n
\n

如果点击操作按钮(在运行 iOS 的设备上),系统将启动应用程序,并且应用程序将调用其 delegate\xe2\x80\x99s\n application:didFinishLaunchingWithOptions: 方法(如果已实现);它传入通知有效负载(对于远程通知)或本地通知对象(对于本地通知)。

\n\n

如果在运行 iOS 的设备上点击应用程序图标,应用程序将调用相同的方法,但不提供有关通知的信息。

\n
\n\n

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

\n\n

但是,我想知道是否有办法加载有效负载,即使应用程序已通过触摸图标重新打开。

\n