В вашем приложении делегат
import UserNotifications
class AppDelegate: ... UNUserNotificationCenterDelegate {
Если вы:
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
print("notification tapped to open app ....")
completionHandler()
}
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("notification arrived while app in foreground!")
completionHandler(.alert)
}
Когда вы
и действительно, пользователь
- НАЖИМАЕТ, ЧТОБЫ ОТКРЫТЬ уведомление
, тогда
- ваше приложение будет красиво открываться
и
- действительно, вышеописанные функции будут срабатывать идеально ,
, и вы увидите «уведомление, открытое для открытия приложения ...» на консоли.
Но в этих функциях
как, черт возьми, вы получаете фактический pu sh PAYLOAD ?
(то есть сказать значение .data
...... или вообще любую часть полезной нагрузки. Например, если вы используете превосходный github.com / AndrewBarba / apns2 , вам нужно именно там, где у него есть пример data: {
...)
Как, черт возьми, вы получаете уведомление (полезную нагрузку) в UserNotifications
функциях делегата?!
Опять же, это когда пользователь * ** на самом деле открыл приложение, просто та pping (ie, «slide, open») в уведомлении.
Я НЕ обсуждаю сложную проблему пробуждения приложения в фоновом режиме (скажем, для загрузки файла et c).
Как, черт возьми, вы получаете полезную нагрузку?