在特定时间停止 iOS 本地通知

Posted

技术标签:

【中文标题】在特定时间停止 iOS 本地通知【英文标题】:Stop iOS local notifications at particular time 【发布时间】:2017-01-13 19:19:21 【问题描述】:

我的应用使用用户通知框架来安排每 30 分钟一次的本地通知。我设置了触发器

  var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true); 

但是,我想在特定时间后停止这些通知,比如说晚上 9 点。我该怎么做?

【问题讨论】:

【参考方案1】:

有 3 个选项可以删除本地通知。

1.当应用处于前台时:- 如果应用处于前台,请检查本地设备时间并删除所有待处理的本地通知。

UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();

2。如果应用处于后台:当应用处于后台时,您无法在特定时间执行代码。有两种方法可以在特定时间删除本地通知。但是,由操作系统决定是否调用回调方法,具体取决于可用资源、电池百分比、设备是否正在充电等。

一个。 Background Fetch - 启用后台获取功能,当设备处于后台时,它将在特定时间后调用回调方法。同样,操作系统将根据应用的用途决定何时调用。

//Fetch interval 
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);


//Call back method
    public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler)
        
           // Code of removing local notifications
        

b.使用无声通知: 当应用收到无声远程通知时,远程通知接收到的回调方法被调用,没有声音和警报。您可以执行删除本地通知的代码。

【讨论】:

以上是关于在特定时间停止 iOS 本地通知的主要内容,如果未能解决你的问题,请参考以下文章

添加 FCM 支持后,本地通知在 iOS 上停止工作

iOS 10:如何在特定日期触发后重复本地通知?

如何在 swift [iOS] 中从特定时间开始发送本地通知 UNTimeInterval

iOS本地通知打开特定选项卡?

针对特定日期重复本地通知 iOS 10

重复本地通知 iOS 10