我的问题似乎与this one重复,但事实并非如此。虽然应用程序已被终止并且未在后台运行,但如果我收到推送通知并单击通知横幅,则它可以正常工作。 " USERINFO"不是空的,应用程序处理通知。 但是如果我解除通知横幅并通过点击应用程序图标打开应用程序,这个" userInfo"返回nil。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
NSDictionary* userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(userInfo != nil){
//Handling notification
}
}
以及
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
if([application applicationState] == UIApplicationStateActive) {
NSLog(@"...1");
}else if([application applicationState] == UIApplicationStateInactive){
NSLog(@"...2");
}else if([application applicationState] == UIApplicationStateBackground){
NSLog(@"...2");
}
completionHandler(UIBackgroundFetchResultNoData);
}
有没有办法处理这些通知,还是应该由我自己处理?
答案 0 :(得分:3)
不会仅向您的应用通知用于打开/启动应用的通知。
无法检测到您的应用的通知中心是否有任何通知。您需要在自己的应用服务器中自行构建。