推送通知不起作用
Posted
技术标签:
【中文标题】推送通知不起作用【英文标题】:PushNotification Not Working 【发布时间】:2015-11-18 09:13:42 【问题描述】:我一直在从后台杀死一个应用程序。然后推送通知进来,它显示在我的通知托盘上。当我点击通知时,我的代码工作正常。当我没有点击通知并简单地启动应用程序时。我们如何获得通知用户信息。我被困住了。请帮忙。
- (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);
【问题讨论】:
你尝试了什么?你能提供一些代码吗? 你打到哪里了?你想做什么?你没有正确说明你的问题 @Imran 我想要我的应用程序从后台终止时的通知信息。我正在启动一个应用程序而不点击通知。 您无法访问它。想一想,因为您不会总是收到通知,因此即使用户没有单击它,您也需要通知信息是没有意义的。在这种情况下,只需正常启动您的应用程序,因为没有任何通知。 【参考方案1】:简单来说,您无法访问通知的userInfo
,当您直接点击您的应用图标时,您只有在点击通知栏中的通知时才会得到它。
【讨论】:
我们如何克服这一点。有没有其他方法可以做到这一点。 您可以在服务器中保留已读和未读消息的标志,并在启动应用程序时对其进行查询。如果您有未读消息,则在启动时显示用户。这是唯一的解决方案 @MahimaTyagi 您将在服务器端的帮助下进行管理。【参考方案2】:如果不是通过点击通知直接启动应用程序,则无法从通知中获取信息。很遗憾,您可以在启动应用程序时检查远程服务器是否有未读通知。
【讨论】:
【参考方案3】:如果您直接点击应用程序图标,您将无法获取通知对象,您只会收到有关用于打开应用程序的通知的信息。因此,如果用户打开您的应用,并且您的应用有通知,您将无法从应用中检索它们。
您可以在服务器上跟踪通知,并在用户直接从应用程序图标启动它时从服务器获取未读通知。因此,服务器跟踪所有通知。这就是 Facebook 的做法。
【讨论】:
【参考方案4】:除非你通过推送通知打开你的应用程序,否则你无法获取通知的信息。
【讨论】:
以上是关于推送通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章