Расписание локальных уведомлений при удаленном уведомлении - PullRequest
1 голос
/ 06 марта 2020

В нашем проекте мы хотим изменить заголовок и текст удаленного уведомления. При этом мы генерируем локальное уведомление и отображаем локальное уведомление с измененными заголовком и телом и скрываем pu sh Уведомление. Но в то время как приложение находится в фоновом режиме и завершает работу, оно будет отображать удаленное уведомление вместо локального уведомления. Но мы хотим отобразить локальное уведомление вместо pu sh в поле «Представлять уведомление». как это сделать?

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Swift.Void) {

        if notification.request.identifier != "local_notification1"{
                self.isAdded = false
        }
            let name = (ContactsManager.shared.getContacName(withPhoneNumber:notification.request.content.title) != nil) ? ContactsManager.shared.getContacName(withPhoneNumber:notification.request.content.title) :
                notification.request.content.title
            let notificationContent = UNMutableNotificationContent()
            //        notificationContent.userInfo = notification.request.content.userInfo
            notificationContent.body = notification.request.content.body
            notificationContent.title = name!
            debugPrint("name title is %@ ", name)
            debugPrint("notificationContent title is %@ ", notificationContent.title)
            notificationContent.sound = .default

            let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.1, repeats: false)
            let notificationRequest = UNNotificationRequest(identifier: "local_notification1", content: notificationContent, trigger: notificationTrigger)

            if !isAdded {
                UNUserNotificationCenter.current().add(notificationRequest) { (error) in
                    if let error = error {
                        debugPrint("Unable to Add Notification Request (\(error), \(error.localizedDescription))")
                    }else {
                        print("is Shown")
                    }
                    self.isAdded = true
                }
                 completionHandler([])

            }
         completionHandler([.alert,.sound])
   }    
}

1 Ответ

1 голос
/ 06 марта 2020

Вы можете изменить содержимое удаленного уведомления с помощью UNNotificationServiceExtension

  1. Первое переопределение didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {

  2. Изменить содержимое и.

  3. Возврат обновленного содержимого в contentHandler

Примечание: Обязательно iOS 10 +

...