CloudKit: ссылка на запись, из-за которой сработала подписка. - PullRequest
0 голосов
/ 09 мая 2020

Я успешно реализовал код для доставки удаленных уведомлений пользователям, подписанным на создание записей в базе данных publi c. В моем делегате приложения у меня есть это:

// MARK: UserNotification Delegate Methods
func userNotificationCenter(_ center: UNUserNotificationCenter,
                            willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    // code to handle push while app is in the foreground
    print("Handle push from foreground")
    // custom code to handle push while app is in the foreground
    print("\(notification.request.content.userInfo)")
    completionHandler([.alert, .sound])
}

и

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

    print("Handle push from background or closed")
    // if you set a member variable in didReceiveRemoteNotification, you  will know if this is from closed or background
    print("\(response.notification.request.content.userInfo)")

    completionHandler()
}

У меня две проблемы. 1) Я хотел бы получить запись, которая вызвала срабатывание подписки, и 2) заполнить полученную полезную нагрузку userInfo информацией из этой записи. Прямо сейчас ключ «alertBody» имеет общее сообщение c, которое было установлено при сохранении подписки в базе данных, и я хочу, чтобы оно было более конкретным c.

Есть ли способ перехватить полезную нагрузку, получить запись с необходимыми данными и ЗАТЕМ отобразить уведомление?

...