Swift: установить кнопку действия для локального уведомления - PullRequest
0 голосов
/ 19 ноября 2018

Здравствуйте! Я хочу добавить действие кнопки в свое UNMutableNotification, но я не понимаю, почему оно не работает, но я передал ему catergoryIdentifier.

Мой код:

class LocalNotification: NSObject {

    class func createToDate(identifier: String,
                            title: String,
                            subtitle: String = "",
                            body: String,
                            to date: Date,
                            sound: UNNotificationSound = .default,
                            repeatNotification: Bool = false,
                            completion: @escaping (_ error: Error?) -> ()) {

        let content = UNMutableNotificationContent()
        content.title = title
        content.subtitle = subtitle
        content.body = body
        content.sound = sound
        content.categoryIdentifier = "fittoCateroy"

        let dateComponent = Calendar.current.dateComponents([.day, .hour, .minute], from: date)
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: repeatNotification)
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)

        UNUserNotificationCenter.current().add(request) { (error) in
            completion(error)
        }
    }

    class func withAction() {
        let snoozeAction = UNNotificationAction(identifier: "snooze", title: "Snooze", options: [])

        let category = UNNotificationCategory(identifier: "fittoCateroy", actions: [snoozeAction], intentIdentifiers: [], options: [])

        UNUserNotificationCenter.current().setNotificationCategories([category])

        createToDate(identifier: "M",
            title: "My title", subtitle: "Sub", body: "Body",
            to:Date().adding(seconds: 10), sound: .default, repeatNotification: false) { error in

            if let error = error {
                print("ERRRRROR \(error.localizedDescription)")
            }
        }
    }

}

Когда я вызываю с моего контроллера функцию createToDate(), уведомление работает, но если я вызываю функцию withAction(), уведомление не работает.

Date().adding(second: 10) - это собственное расширение

...