我为学生开发了一个应用程序。他可以创建时间表。 我试图创建一个通知,说明第二天的摘要。所以我需要更改文本通知,该怎么办?
另一个例子,学生可以写作业。返回作业的前一天,通知他。
我已经尝试做一个简单的通知,但是通知的文本是静态的。
let content = UNMutableNotificationContent()
content.title = "Changement de semaine"
content.body = "Nous sommes en semaine \(notificationSemaineAB())"
content.sound = UNNotificationSound.default
var dateComponent = DateComponents()
dateComponent.weekday = 2
dateComponent.hour = 11
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: true)
let request = UNNotificationRequest(identifier: "semaineAB", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)
对于这个,我想每星期通过通知文本告诉我我们是在偶数周还是奇数周。但是在输出中,我总是有相同的文字。
答案 0 :(得分:0)
您可以使用此代码删除旧的通知
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers:["semaineAB"])
然后,您可以重复使用代码来创建新代码。
答案 1 :(得分:0)
您可以创建一个扩展UNMutableNotificationContent的自定义类。这将根据偶数/奇数周确定通知的内容。然后,您可以使用另一个类使用UNMutableNotificationContent类型的方法实例化通知请求。
答案 2 :(得分:0)
我将使用一个单独的类来处理所有通知功能
在Notifications.swift中
class Notifications: NSObjcet, UNUserNotificationCenterDelegate {
func weekTrigger(bodyText: String) {
let content = UNMutableNotificationContent()
content.body = bodyText
let request = .......//
}
现在在您的ViewController中
class ViewController: UIViewController {
var aBoolToCheckBtwnEvenOrOddWeek: Bool //you can set an initial value
let notificationManager = Notifications()
}
在VC中您认为合适的某个地方,添加了在偶数周和奇数周之间进行检查的逻辑
func someFunction() {
if aBoolToCheckBtwnEvenOrOddWeek == true { // which means even in my case
notificationManager.weekTrigger(bodyText: evenWeekString) // call the function
} else {
notificationManager.weekTrigger(bodyText: oddWeekString)
}
}
现在可以在ViewController中的任何位置添加此功能!
快乐编码:]