ios - 跳过一个通知,每天重复

标签 ios swift notifications

我正在制作一个应用程序,提醒用户每天做某事,但即使应用程序处于后台模式,根据某些条件显示或不显示通知时,我也无法实现这种情况。 一种可能的变体是设置无限重复的通知:

notification.repeatInterval = NSCalendarUnit.NSDayCalendarUnit

但是如果满足某些条件,则需要某种方法来跳过当前的通知。如果从通知中心删除这些通知,它们第二天就不会触发。

另一种方法是使用某种方法仅为当前创建通知,然后在满足某些条件时将其删除。问题是,即使在后台模式下,此方法也应该创建这些计划通知,而我不知道如何做到这一点。

有什么想法吗?

最佳答案

不幸的是,您可以在特定时间唤醒应用程序的唯一方法是通过 silent APNS push 。这意味着您需要一个服务器来向您的设备发送静默推送,用户需要有互联网,并且用户需要选择退出推送。

也许background fetch会为你工作吗?通过后台获取,您的应用程序会在每个最小间隔被唤醒。您可以将应用程序设置为每 x 分钟唤醒一次并检查该情况。

[application setMinimumBackgroundFetchInterval:100]; //seconds

请注意:

The minimum number of seconds that must elapse before another background fetch can be initiated. This value is advisory only and does not indicate the exact amount of time expected between fetch operations.

关于ios - 跳过一个通知,每天重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134992/

相关文章:

ios - Xcode 6 符号不工作

ios - html src 正则表达式 iOS

ios - 我可以使用 10ms drawRect 获得 60fps 吗?

ios - Swift,为什么类方法不需要闭包列表

objective-c - 如何将此返回字典的方法从 Swift 转换为 Objective-C?

iOS,删除应用程序未像 gmail 应用程序那样运行的通知

iphone - XCode 4 中的 iOS 跟踪?

ios - 使用 AVAudioPlayer 和有效的 URL 播放声音

java - 媒体样式通知操作按钮不适用于 PendingIntent.getBroadcast()

php - 如何在 Laravel 中显示多个 Toast 通知