如何在iOS应用中检索和处理远程推送通知内容

时间:2013-07-01 03:30:03

标签: iphone ios apple-push-notifications

我正在尝试在应用未运行时获取远程通知信息,因此我被告知可以从中获取:

UILocalNotification *localNotification  = [launchOptions 
                   objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 
方法中的

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

,但仍无法获取信息。

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

任何其他问题会导致此问题吗?如果您有任何想法,请告诉我。

2 个答案:

答案 0 :(得分:5)

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

app正在运行

以下方法中的userInfo已包含推送通知

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

app未运行

launchOptions中key的值包括推送通知,在两种情况下:

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey] description];
}

答案 1 :(得分:3)

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

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