Я использую приложение iOS для push-уведомлений firebase, но в некоторых случаях нам не нужно показывать пользователю push-уведомления, только я должен использовать полученные данные вместе с push-уведомлением.
Полезная нагрузка, отправленная с сервера :
{
to: iosTokenList[i],
notification: {
title: 'Hidden',
body: "Hidden",
Data: {
"Id":Id,
"someList":SomeList,
"status": "inactive"
},
notificationType: "status"
},
Проблема
Когда я не отправляю notification.title
и notification.body
, push-уведомление не получено в приложении ios. В appDelegate не вызывается никаких методов,
Но когда мы добавляем notification.title=somevalue
и notification.body=somevalue
, вызывается willPresent
.
AppDelegate
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
NotificationParser.parseIncommingMessages(notification: notification)
completionHandler([.alert, .sound])
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print("PushNotifications : \(userInfo)")
if #available(iOS 10.0, *){
}else{
let dict = userInfo as NSDictionary
if let alert = dict.value(forKeyPath: "aps.alert") as? String{
let alert = UIAlertController(title: appTitle , message: alert + "didReceiveRemoteNotification", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
appDel.window?.rootViewController?.present(alert, animated: true, completion: nil)
}
}
}