我正在尝试在应用未运行时获取远程通知信息,因此我被告知可以从中获取:
UILocalNotification *localNotification = [launchOptions
objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]
方法中的:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
,但仍无法获取信息。
然后我使用alertView在iPhone上显示信息(没有Xcode启动),仍然无法获取信息。
任何其他问题会导致此问题吗?如果您有任何想法,请告诉我。
答案 0 :(得分:5)
如何检索和处理远程通知:
以下方法中的userInfo
已包含推送通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}
launchOptions中key的值包括推送通知,在两种情况下:
1.屏幕被锁定,当收到远程推送通知时,屏幕点亮,用户解锁屏幕,然后直接启动应用程序。
2.用户点击下拉菜单中的通知以启动应用。 如果用户直接点击应用,则通知将会消失并错过。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey] description];
}
答案 1 :(得分:3)
当用户从通知中启动您的应用时(例如,在通知中心点击它),该密钥仅在启动选项中。顺便说一句,我认为远程通知不是您正在使用的课程(UILocalNotification
)。
如果您的应用在设备收到推送时不在前台,并且用户未从通知中启动您的应用,则通知将会消失。你必须检查自己的服务器,看看你是否遗漏了任何东西。