基于条件的本地推送通知-Swift
我正在尝试设置一个“重要事件”重复通知,通知用户根据发生重要事件的特定日期检查我的应用程序。因此,它只在今天有重要事件时发送通知 我有一个全局变量基于条件的本地推送通知-Swift,swift,uilocalnotification,Swift,Uilocalnotification,我正在尝试设置一个“重要事件”重复通知,通知用户根据发生重要事件的特定日期检查我的应用程序。因此,它只在今天有重要事件时发送通知 我有一个全局变量isImportant,它被设置为true 然后我有一个带有switch语句的函数,该语句遍历特定日期并返回重要事件,如果没有重要事件(默认),它将使isImportant=false var isMainWater = true func getForMain() -> Waterz { let database = WaterzBank(
isImportant
,它被设置为true
然后我有一个带有switch语句的函数,该语句遍历特定日期并返回重要事件,如果没有重要事件(默认),它将使isImportant=false
var isMainWater = true
func getForMain() -> Waterz {
let database = WaterzBank()
switch getHijriDateNumber() {
case "2-16":
return database.duaMakarem
case "2-17":
return database.duaFaraj
case "2-21":
return database.duaFaraj
default:
isMainWater = false
return getWaterzByDayOfWeek(database)
}
}
以下是我安排本地通知的方式:
func scheduleImportantNotification() {
let content = UNMutableNotificationContent()
let item = getWaterForMain()
content.title = item.entitle ?? "Important Event"
content.body = "Don't forget to read \(item.entitle ?? "this") today!"
var dateComponents = DateComponents()
dateComponents.hour = 18
dateComponents.minute = 15
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: isMainWater)
let request = UNNotificationRequest(identifier: myNotificationID.ImportantNotifiationsID.rawValue, content: content, trigger: trigger)
notificationCenter.add(request)
}
因此,基本上我尝试了重复:isMainWater
,这样它只有在isMainWater=true
时才会发送通知。那没用。即使在没有重大事件的日子里,我仍然会收到通知,这将是与第一次相同的重要事件。它不是动态的
如何实现这一点?如果不希望重复通知,则应将“重复”设置为“假”。如果您将repeat设置为true,则通知将一次又一次地出现,并且我希望在isMainWater=true时重复该通知。我该怎么做?要在不同的日期触发本地通知,必须在所需的情况下设置dateComponents.day、dateComponents.month甚至dateComponents.year。