在应用程序未运行时处理推送通知(应用程序被杀死)
Posted
技术标签:
【中文标题】在应用程序未运行时处理推送通知(应用程序被杀死)【英文标题】:Handling push notifications when app is not running (App is Killed) 【发布时间】:2014-11-13 08:59:32 【问题描述】:我的问题似乎与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);
有没有办法处理这些通知,还是我应该自己处理?
【问题讨论】:
【参考方案1】:没有,您的应用只会收到用于打开/启动您的应用的通知。
无法检测到您的应用的通知中心是否有任何通知。您需要自己在您的应用服务器中构建它。
【讨论】:
应该说推送通知在发出的时候可以调用自定义的URL schema。因此,当您配置推送通知时,您可以有不同的架构结尾,然后应用程序可以使用这些架构来执行不同的功能。 @onurvarrrr @Dan 这是真的,但只有在用户打开推送通知或静默推送(获取)通知时才会调用 URL。以上是关于在应用程序未运行时处理推送通知(应用程序被杀死)的主要内容,如果未能解决你的问题,请参考以下文章
使用firebase发送静默推送通知,以便在应用程序被杀死时唤醒它