Я отправляю уведомления pu sh из приложения Django (используя django -pu sh -notifications ) в приложение iOS. Приложение предназначено для iOS 13, и я запускаю его на iPhone 7 под управлением iOS 13.3.1. Я отлаживаю в Xcode 11.3.1
Я пытаюсь двумя разными способами отправить уведомление со стороны Django:
Метод 1:
devices.send_message(message={"title" : title, "body" : message}, thread_id="events", extra={"foo": "bar"})
Метод 2:
devices.send_message("[will be overwritten]", extra={
"aps": {
"alert": {
"title": "Bold text in the notification",
"body": "Second line in the notification"
},
"sound": "default",
},
"foo": "bar"
})
Насколько я могу судить, оба метода должны привести к полезной нагрузке, которая выглядит как метод 2.
Я отлаживаю, выполняя следующее:
- Установить "ожидание запуска исполняемого файла" в схеме моего устройства
- Сборка и запуск в Xcode
- Убедитесь, что приложение было убито в переключателе задач
- Запуск отправки удаленного уведомления
- Нажмите на полученное уведомление для запуска приложения
Независимо от того, что я делаю, launchOptions всегда равен нулю. Я попытался установить точку останова для проверки переменных. Я попытался использовать os_log для входа в консоль, если launchOptions не равен nil, и я попытался вызвать предупреждение (следуя совету из этот вопрос ), чтобы исключить вмешательство отладчика Xcode. Это всегда ноль.
Мой AppDelegate в настоящее время выглядит следующим образом:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let notificationOption = launchOptions?[.remoteNotification]
let alert = UIAlertController(title: "Your title", message: notificationOption.debugDescription, preferredStyle: .alert)
let cancel = UIAlertAction(title: "Cancel", style: .default, handler: { action in
})
alert.addAction(cancel)
DispatchQueue.main.async(execute: {
application.windows.first!.rootViewController?.present(alert, animated: true, completion: nil)
})
return true
}
Предупреждение срабатывает, но содержимое предупреждения просто читает "ноль".
Я не могу выяснить, чего не хватает. Вполне возможно, что мои полезные данные уведомлений не совсем такие, как я думаю (на странице Github я запросил уведомления django -pu sh, чтобы подтвердить наличие проблем с этой целью). Также возможно, что я пропустил шаг в настройке удаленных уведомлений, но я действительно получаю уведомления, и они отображаются так, как я ожидаю, поэтому они, кажется, работают.
Любой совет, который высоко ценится!