Изменить текст локального уведомления в Swift - PullRequest
0 голосов
/ 28 мая 2019

Я разработал приложение для студентов.Он может создать свое расписание.Я попытался создать уведомление о том, как подвести итоги на следующий день.Поэтому мне нужно изменить текстовое уведомление, как я могу это сделать?

Еще один пример, студент может написать свою домашнюю работу.За день до того, чтобы вернуть домашнее задание, сообщите ему.

Я уже пытался сделать простое уведомление, но текст уведомления статичен.

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 голосов
/ 28 мая 2019

Вы можете создать собственный класс, который расширяет UNMutableNotificationContent. Это будет определять содержание уведомления на основе четной / нечетной недели. Затем вы можете использовать другой класс для создания экземпляра запроса на уведомление, используя метод класса типа UNMutableNotificationContent.

0 голосов
/ 14 июня 2019

Я бы использовал отдельный класс для обработки всех функций уведомлений

  • Сначала создайте функцию, которая принимает строку в вашем классе уведомлений
  • Затем используйте значение bool для проверки между дажеи нечетная неделя в вашем 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!

Happy Coding:]

0 голосов
/ 28 мая 2019

Вы можете удалить старое уведомление с этим кодом

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

И после этого вы можете повторно использовать свой код для создания нового.

...