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

标签 ios swift unusernotificationcenter unnotificationrequest unusernotification

我想从特定时间开始每 8 小时发送一次本地通知。 例如,现在我们是上午 10 点,但我希望您从 12 点开始每 8 小时通知我一次,我该怎么做。

我有这个代码:

let content: UNMutableNotificationContent = UNMutableNotificationContent()
content.title = "Alert!"
content.body = "Alert"
content.categoryIdentifier = "alarm"

let request = UNNotificationRequest(
    identifier: "AA",
    content: content,
    trigger: UNTimeIntervalNotificationTrigger(timeInterval: 8*3600, repeats: false)
)

let action = UNNotificationAction(identifier: "remindLater", title: "remind_me_later".localized(), options: [])
let category = UNNotificationCategory(identifier:"pill-alarm", actions: [action], intentIdentifiers: [], options: [])

UNUserNotificationCenter.current().setNotificationCategories([category])
UNUserNotificationCenter.current().add(request)

最佳答案

所以我遇到了同样的问题,我最终做的是:

假设您每 8 小时发出一次闹钟,从 12 点开始,现在是上午 10 点 好吧,我做了一些计算并创建了几个重复通知:

第一个通知将于每天 12 点发出, 第二次通知将于每天 20 点发出, 第三次通知将于每天 4 点发出。

你像这样创建它们:

var date = DateComponents()
date.hour = hour
date.minute = minutes

let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

let request = UNNotificationRequest(identifier: notificationId, content: content, trigger: trigger)

center.add(request) { (error) in
    if let error = error {
        print("Error \(error.localizedDescription)")
    }
}

您需要为它们设置不同的标识符,以便您可以对它们进行第一、第二、第三或编号。如果您需要在某个时候取消它们,这将对您有所帮助。

关于ios - 如何在swift中从特定时间开始发送本地通知UNTimeInterval [iOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060498/

相关文章:

ios - 为什么没有触发 userNotificationCenter didReceive?

ios - 具有动态高度的单元格

ios - 当用户开始在 UITableView 上滚动时使用 alpha 隐藏 UIView?

ios - 无法从解析服务器流式传输视频(PFFile)

swift - 如何比较 NSDate 以检查日期是否在同一周内

iphone - 通过segue/分段控制传递

ios - 在 Swift 2 中将 base64String 解码为 UIImage

ios - 更新 iOS 10 中的待处理通知

ios - Swift 3 - 用户通知自定义重复像 iOS 提醒应用程序

ios - 响应 UNUserNotificationAction