Как отображать динамический c основной текст для локального уведомления в Swift - PullRequest
1 голос
/ 06 августа 2020

Я добавляю функцию локального уведомления в свое приложение iOS, которое будет запускать уведомление / предупреждение в указанное время, например, в 7 утра ежедневно. Поэтому я настраиваю оповещение, используя следующий код:

    let content = UNMutableNotificationContent()
    content.title = "Planned transactions due today"
    content.body = "You have [NUMBER] scheduled income and [NUMBER] planned expenses due for today."
    content.categoryIdentifier = "alarm"
    content.userInfo = ["customData": "fizzbuzz"]
    content.sound = UNNotificationSound.default
    
    let date = Date(hour: 7, minute: 0, second: 0) //custom initializer from Date extension
    let dateComponents = Calendar.current.dateComponents([.hour, .minute], from: date)
    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

    let request = UNNotificationRequest(identifier: "Reminder", content: content, trigger: trigger)
    
    center.add(request) { (error) in
        if let error = error {
            print("Error scheduling notification: \(error.localizedDescription)")
        }
    }

Он отлично работает. Но я хочу добавить больше полезной информации в тело локального уведомления, например заменить [НОМЕР] на фактическое число, полученное из запроса из основных данных.

Мне нужна помощь в том, как потяните это от. Я рассмотрел реализации с использованием UNNotificationServiceExtension и UNNotificationContentExtension. Но я не могу заставить его работать. Мне не удалось найти какую-либо реализацию UNNotificationServiceExtension, которая применяется к локальному уведомлению - я могу ошибаться, но я думаю, что это только для уведомлений pu sh.

Я также попытался реализовать UNUserNotificationCenterDelegate в AppDelegate, чтобы перехватить уведомление по мере его запуска. Метод fun c userNotificationCenter (willPresent :) позволяет мне получать уведомление, но, похоже, у меня нет возможности изменить свойство .content, поскольку оно предназначено только для получения.

В общем, я просто хочу чтобы иметь возможность изменять содержание уведомления до его отображения.

Надеюсь, что все ясно: -)

Заранее спасибо!

...