我一直在从Background中删除一个应用程序。然后推送通知,它会显示在我的通知托盘上。当我点击通知时,我的代码工作正常。当我没有点击通知并只是启动应用程序时。我们如何获得通知userinfo。我被卡住了。请帮忙。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
NSDictionary* userInfo =
[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
NSLog(@"%@",userInfo);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"%@",userInfo);
}
答案 0 :(得分:1)
简单来说,您无法访问通知的userInfo
,当您直接点按“应用”图标时,只有在点击通知栏中的通知时才能获得该通知。
答案 1 :(得分:0)
如果通过点击通知未直接启动应用,则无法从通知中获取信息。很遗憾,您可以在启动应用程序时与远程服务器核对未读通知。
答案 2 :(得分:0)
如果您直接点按应用图标,则无法获取通知对象,您只会收到有关用于打开应用的通知的信息。因此,如果用户打开您的应用,并且您的应用有通知,那么您将无法在应用中检索它们。
您可以跟踪服务器上的通知,并在用户直接从应用程序图标启动时从服务器获取未读通知。因此,服务器跟踪所有通知。 Facebook就是这样做的。
答案 3 :(得分:0)
除非您通过推送通知打开应用程序,否则无法获取通知信息。