2

当应用程序未运行时,我试图获取远程通知信息,所以我被告知我可以从:

UILocalNotification *localNotification  = [launchOptions 
                   objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 

在方法中:

- (BOOL)application:(UIApplication *)application 
               didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

,但仍然无法获取信息。

然后我使用 alertView 在 iPhone 上显示信息(在没有 Xcode 的情况下启动),仍然无法获取信息。

还有其他问题会导致这种情况吗?如果您有任何想法,请告诉我。

4

2 回答 2

5

如何检索和处理远程通知:

应用程序正在运行

下面userInfo的方法中已经包含了推送通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}

应用程序未运行

launchOptions 中 key 的值包含推送通知,分两种情况:

1.屏幕被锁定,当收到远程推送通知时,屏幕被点亮并且用户解锁屏幕然后直接启动应用程序。

2.用户点击下拉菜单上的通知以启动应用程序。如果用户直接点击应用程序,则通知将消失并错过。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey] description];
}
于 2013-07-01T09:23:21.057 回答
3

当用户从通知启动您的应用程序时(例如在通知中心点击它),该键仅在启动选项中。顺便说一句,我认为远程通知不会是您正在使用的类(UILocalNotification)。

如果设备收到推送时您的应用不在前台,并且用户没有从通知中启动您的应用,则通知消失。您必须检查自己的服务器以查看是否遗漏了任何内容。

于 2013-07-01T04:18:33.343 回答