当应用程序处于终止状态而没有用户交互时如何清除本地通知。
Posted
技术标签:
【中文标题】当应用程序处于终止状态而没有用户交互时如何清除本地通知。【英文标题】:How to clear local notifications when the app is in terminated status without a user interaction. 【发布时间】:2017-04-25 05:21:36 【问题描述】:我有一个警报应用程序,它正在推送本地通知以提醒用户。我无法创建特定数量的本地通知,因为它们必须在用户执行操作之前通知用户(1. 点击通知并打开应用程序,2. 通过点击应用程序图标并打开应用程序)。由于该应用程序只允许安排 64 条通知,因此我无法创建更多。
我有一个逻辑,即在收到特定数量的通知后,本地通知将被一一清除,并且即将接收到用户(因此它将始终保持 20,直到他在通知状态栏中打开应用程序)。这将有助于无限次播放本地通知,直到用户响应本地通知。
但是当应用程序终止时,我坚持清除本地通知。 (当应用程序在前台时,我们可以使用其唯一标识符清除每个本地通知,并且已经解决了这个问题。
上述场景在 Appstore(Reference) 的 Alarmy App 中运行良好
【问题讨论】:
尝试添加一些代码。 【参考方案1】:您可以在 AppDelegate 的 didFinishLaunchingWithOptions 中配置您的逻辑。
if let launchOptions = launchOptions
if let userInfo = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]
// change condition and add logic here
if let action = userInfo["action"], id = userInfo["id"]
)
【讨论】:
我打算在没有用户交互的情况下清除本地通知。既不点击本地通知,也不打开应用程序。简而言之,我可以说“如何安排在特定时间删除本地通知?” 是的,您也可以在打开应用程序时执行此操作,如果有任何通知到达,那么您可以在此处跟踪。 是的,我知道通知可以像你上面说的那样被清除。但是如何在不执行任何这些操作的情况下清除呢? 一旦你打开应用程序......你的通知值存储在 didFinishLaunchingWithOptions 的 NSDictionary 对象中。 用户在 5 - 10 分钟内不会打开应用程序,并且通知应该每隔 5 秒间隔发出警报,直到 10 分钟。但是这里我们只能安排 64 个,我们可以做些什么来安排 100 个或更多?以上是关于当应用程序处于终止状态而没有用户交互时如何清除本地通知。的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序处于后台/终止并收到 FCM 通知时,如何在 Flutter 中显示本地通知?
FCM点击应用处于后台状态时如何打开用户指定的活动而不是默认活动