Реализация службы уведомлений и расширения контента в динамической структуре - PullRequest
0 голосов
/ 27 апреля 2018

Я реализовал Extension Notification Service и Notification Content Extension в своем демонстрационном приложении, и оно работает абсолютно нормально.

Теперь я должен реализовать это в своих рамках. Это значит, что я работаю над динамическим фреймворком, который поддерживается как приложение чата. В рамках все экраны создаются программно , в нем нет раскадровки или XIB.

Я настроил все необходимые настройки для Notification Service Extension и Notification Content Extension так же, как и мое демонстрационное приложение в фреймворке. Все так же, как в моей двойной проверке.

Я изо всех сил пытаюсь реализовать Notification Service Extension и Notification Content Extension.

Нужно ли создавать Notification Content программно вместо раскадровки? Нужно ли мне добавлять целевые зависимости? Чего мне не хватает?

При перетаскивании уведомления оно не показывает мне содержимое уведомления.

Ниже приведен код, который я сейчас использую для локальных уведомлений для тестирования. Этот код работает в демонстрационном приложении.

@available(iOS 10.0, *)
func scheduleNotification() {

    UNUserNotificationCenter.current().delegate = self

    let content = UNMutableNotificationContent()
    content.title = "Notification"
    content.body = "We will remind you that your notification demo is performed well."
    content.sound = UNNotificationSound.default()
    content.categoryIdentifier = "myNotificationCategory"
    content.userInfo = ["Image" as AnyHashable: "https://codepo8.github.io/canvas-images-and-pixels/img/horse.png"]

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
    let request = UNNotificationRequest(identifier: "request", content: content, trigger: trigger)
    UNUserNotificationCenter.current().add(request) { (error) in
        if error != nil {
            print("Error to add notification: \(error!.localizedDescription)")
        } else {
            print("Notification added")
        }
    }
}

Я также тестирую его с помощью отладки, но didReceive(_ notification: UNNotification) также не вызывает.

Я застрял! Пожалуйста, помогите мне? Помощь будет оценена.

1 Ответ

0 голосов
/ 11 июля 2019

Я получил вашу точку зрения относительно Notification Service Extension и Notification Content Extension, чтобы добавить в вашу личную структуру. Итак, ваш фреймворк содержит sharedInstance, поэтому вы не можете реализовать оба расширения в вашем фреймворке, потому что они не разрешены.

Таким образом, есть решение для того, чтобы создать один небольшой фреймворк, содержащий код, связанный с методами вашего обоих расширений, этот метод будет методом класса. Он содержит код, который заполняет ваши службы уведомлений.

  1. Создать новый небольшой каркас, который содержит методы класса и код, связанный с Notification Content Extension и Notification Service Extension.

  2. Добавьте этот фреймворк в ваше приложение с вашим приватным фреймворком.

  3. Добавьте Notification Content Extension и Notification Service Extension Настройтесь внутри своего приложения и внедрите требуемый метод, вызовите относительный метод из приложения в инфраструктуру уведомлений.

Вы получите решение, используя это, но есть еще один фреймворк, который вам нужно добавить в ваше приложение

...