Swift iOS 13: Нажмите на pu sh уведомление, как открыть текстовое поле? - PullRequest
2 голосов
/ 24 марта 2020

Пользователь хочет взаимодействовать по щелчку pu sh уведомления и отправлять комментарии / ответы / сообщения.

У меня есть следующий код в AppDelegate:

     func configureNotification() {
        let center = UNUserNotificationCenter.current()

        center.requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }

        center.delegate = notificationDelegate

        let replyAction = UNTextInputNotificationAction(identifier: replyID, title: "Add reply", options: [], textInputButtonTitle: "Send", textInputPlaceholder: "Reply here")

        let deafultCategory = UNNotificationCategory(identifier: "CustomSamplePush", actions: [replyAction], intentIdentifiers: [], options: [])
        center.setNotificationCategories(Set([deafultCategory]))

        UIApplication.shared.registerForRemoteNotifications()
    }

И обрабатывать действия, как следующие :

 func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {

        let identifier = response.actionIdentifier
               let request = response.notification.request


        if identifier == replyID{
            let textResponse = response as! UNTextInputNotificationResponse
            let newContent = request.content.mutableCopy() as! UNMutableNotificationContent
            newContent.body = textResponse.userText
            addNotification(content: newContent, trigger: request.trigger, indentifier: request.identifier)
        }

        completionHandler()
    }


    func addNotification(content:UNNotificationContent,trigger:UNNotificationTrigger?, indentifier:String){
        let request = UNNotificationRequest(identifier: indentifier, content: content, trigger: trigger)
        UNUserNotificationCenter.current().add(request, withCompletionHandler: {
            (errorObject) in
            if let error = errorObject{
                print("Error \(error.localizedDescription) in notification \(indentifier)")
            }
        })
    }

К вашему сведению: Этот код отлично работает для устройства iOS 11, но не работает в iOS 13

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