本地通知触发时检测

Posted

技术标签:

【中文标题】本地通知触发时检测【英文标题】:Detect when fire of local notification 【发布时间】:2014-01-13 05:31:56 【问题描述】:

有一种方法可以检测localnotification 何时着火?? 例如,我有一个在凌晨 12:00 触发的通知,它显示notification 有办法知道用户是否触摸了notification。 因为如果用户没有触摸notification,我想设置其他警报在20分钟后触发,如果它没有触摸notification,什么时候触发。

【问题讨论】:

【参考方案1】:

在应用委托中调用 -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 以了解用户何时从通知返回应用。注意:这仅在应用程序未关闭时调用,即通过多任务关闭。我建议在上午 12:00 设置一个计时器以设置另一个通知,如果用户从第一个通知返回到应用程序,则取消第二个通知。

【讨论】:

确切地说,设置 2 个本地通知,第一个在所需的日期,第二个在第一个 + 20 分钟的日期(或您想要的任何间隔)。然后,如果第一个触发,则取消第二个。如果没有触发,将显示第二个。【参考方案2】:

当应用程序在前台或后台时,然后在 appDelgate 中触发通知时调用此方法

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification


如果应用程序关闭然后点击通知然后 didFinishLaunchingWithOptions 方法检查是本地通知

if ([[launchOptions allKeys] UIApplicationLaunchOptionsLocalNotificationKey]) 


    

【讨论】:

以上是关于本地通知触发时检测的主要内容,如果未能解决你的问题,请参考以下文章

本地通知触发时更改图标徽章编号

如果在 iOS 设置中禁用通知访问时安排本地通知,则不会在 iOS 13 上触发本地通知

检测下一个将触发的 UILocalNotification

iOS 开发:推送通知阻止我的本地通知触发

当 iOS 10 应用程序在后台时,有啥方法可以触发本地通知?

后台 FCM 触发时生成 Flutter 本地通知