gpt4 book ai didi

swift - 当应用程序关闭时,通知 willPresent 不会调用

转载 作者:行者123 更新时间:2023-11-28 07:30:19 26 4
gpt4 key购买 nike

我试图仅在工作日通知用户并且不想使用 for 循环来通知用户,因此通知重复 bool 为真。当应用程序打开时,willPresent 函数可以工作,但是当应用程序进入后台时,willPresent 函数不会被应用程序调用并在周末向用户发送通知,这是我不想的。

我已经在 didFinishLaunchingWithOptions 设置了 UNUserNotificationCenter.current().delegate = self

这是我的 AppDelegate 中的 willPresent 函数:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

let date = Date()
var dayOfWeek = date.getWeekDay()
if dayOfWeek.rawValue == 1 || dayOfWeek.rawValue == 7{
print("Don't send a notification")
completionHandler([])
}else{
completionHandler([.alert, .sound, .badge])
}
}

我正在使用的扩展:

extension Date {

enum WeekDay: Int {
case sunday = 1
case monday
case tuesday
case wednesday
case thursday
case friday
case saturday
}

func getWeekDay() -> WeekDay {
let calendar = Calendar.current
let weekDay = calendar.component(Calendar.Component.weekday, from: self)
return WeekDay(rawValue: weekDay)!
}
}

如有任何帮助,我们将不胜感激。谢谢

最佳答案

那是因为你应该使用 didReceive 方法来接收后台通知

关于swift - 当应用程序关闭时,通知 willPresent 不会调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54962074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com