2017-09-05 1 views
0

J'utilise Urban Airship pour recevoir des notifications push dans mon application iOS 10 (Swift). Je cours avec les problèmes suivants, demandant votre aide pour résoudre.Gestion de la notification push

Impossible de cacher une notification lorsque l'application est en cours d'exécution de premier plan

Pour masquer la notification, j'ai essayé tâches suivantes ..

  1. Supprimer la mise en œuvre de la méthode délégué func userNotificationCenter (_ centre: UNUserNotificationCenter, notification willPresent: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

  2. J'ai essayé de passer completionHandler (UNNotificationPresentationOptionNone) pour échapper/cacher le toast de notification, mais "UNNotificationPresentationOptionNone" n'est plus disponible.

  3. completionHandler ([]) - Cela ne fonctionne pas. J'ai essayé de passer « UNNotificationPresentationOptionNone » dans

Effacer notification

Comment effacer/supprimer une notification délivrée (Une fois l'utilisateur lu ou annuler) de la liste et mettre à jour l'icône badge en conséquence.

Merci

Répondre

0

Premier plan Présentation Manipulation

Il y a deux façons de gérer les options de présentation de premier plan sur iOS10 + avec le SDK Urban Airship. Si vous avez une instance de UAPushNotificationDelegate configurée sur le SDK Urban Airship, les options de présentation seront déléguées à presentationOptions et traitées par push. Par exemple:

@available(iOS 10.0, *) 
func presentationOptions(for notification: UNNotification) -> UNNotificationPresentationOptions { 
    return [.alert] 
} 

Vous pouvez retourner [] à ne pas présenter quoi que ce soit. Sinon, si vous n'avez pas configuré le délégué susmentionné, vous pouvez désactiver toutes les options de présentation de premier plan en définissant le defaultPresentationOptions.

UAirship.push().defaultPresentationOptions = [] 

Notifications de compensation

Sur iOS10 + vous pouvez effacer les notifications de votre application via l'instance partagée de UNUserNotificationCenter qui fournit une méthode removeAllDeliveredNotifications(). Pour maintenir la compatibilité sur les anciennes versions d'iOS, vous pouvez revenir à la remise à zéro du badge - plus d'informations à ce sujet here.

if #available(iOS 10.0, *) { 
    UNUserNotificationCenter.current().removeAllDeliveredNotifications() 
} else { 
    UIApplication.shared.applicationIconBadgeNumber = 0; 
};