在应用程序处于后台时获取本地通知

Posted

技术标签:

【中文标题】在应用程序处于后台时获取本地通知【英文标题】:getting local notification while the app is in background 【发布时间】:2014-08-18 03:46:04 【问题描述】:

当应用程序处于后台时,不会调用 didReceiveLocalNotification。

所以我尝试从 didFinishLaunchingWithOptions 获取通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
 
 UILocalNotification *notification = [launchOptions  objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
//...

但我的应用启用了后台模式(使用外部附件通信) 点击通知时,不会调用 didFinishLaunchingWithOptions。

还有其他获取通知的方法吗?

【问题讨论】:

当你的应用在后台时,本地通知会自动来,didReceiveLocalNotification在你的应用在前台时使用。 【参考方案1】:

通过检查Apple's document 的通知,它说:

ios 注意:在iOS中,你可以判断一个应用程序是否启动 由于用户点击操作按钮或是否 通知已通过以下方式发送到已运行的应用程序 检查应用程序状态。在委托的实现中 应用程序:didReceiveRemoteNotification:或 application:didReceiveLocalNotification: 方法,获取的值 applicationState 属性并对其进行评估。如果值为 UIApplicationStateInactive,用户点击了动作按钮;如果 值为 UIApplicationStateActive,应用程序在最前面的时候 它收到了通知。

据我所知,当您的应用程序处于后台运行状态,并且有本地通知时,您不会收到任何方法调用,通知将显示给用户,但如果用户点击通知并因此响应您的应用程序,您将收到-didReceiveLocalNotification: 电话。

【讨论】:

以上是关于在应用程序处于后台时获取本地通知的主要内容,如果未能解决你的问题,请参考以下文章

使用swift后台获取本地通知

iOS 本地通知 - 在后台时回调

收到本地通知时无法播放音乐,当应用程序处于后台状态时

检测应用程序处于后台/非活动状态时是不是触发了本地通知

当应用程序处于后台/终止并收到 FCM 通知时,如何在 Flutter 中显示本地通知?

当应用程序处于后台模式时,电池电量通知不起作用