在Swift中更改本地通知的文本

时间:2019-05-28 18:51:54

标签: ios swift notifications localnotification

我为学生开发了一个应用程序。他可以创建时间表。 我试图创建一个通知,说明第二天的摘要。所以我需要更改文本通知,该怎么办?

另一个例子,学生可以写作业。返回作业的前一天,通知他。

我已经尝试做一个简单的通知,但是通知的文本是静态的。

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)

对于这个,我想每星期通过通知文本告诉我我们是在偶数周还是奇数周。但是在输出中,我总是有相同的文字。

3 个答案:

答案 0 :(得分:0)

您可以使用此代码删除旧的通知

UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers:["semaineAB"])

然后,您可以重复使用代码来创建新代码。

答案 1 :(得分:0)

您可以创建一个扩展UNMutableNotificationContent的自定义类。这将根据偶数/奇数周确定通知的内容。然后,您可以使用另一个类使用UNMutableNotificationContent类型的方法实例化通知请求。

答案 2 :(得分:0)

我将使用一个单独的类来处理所有通知功能

  • 首先创建一个在通知类中包含字符串的函数
  • 然后使用布尔值在ViewController中的偶数周和奇数周之间进行检查
  • 还有一个将逻辑放在偶数/奇数周的函数

在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中的任何位置添加此功能!

快乐编码:]