web-dev-qa-db-fra.com

Comment effacer la notification à distance dans votre application?

Existe-t-il un moyen d'effacer la notification à distance de la bannière de notification lorsque vous faites glisser votre doigt depuis le haut de l'écran de l'iPhone. J'ai essayé de régler le numéro de badge à zéro:

application.applicationIconBadgeNumber = 0 

dans délégué didFinishLaunchingWithOptions et didReceiveRemoteNotification, mais les notifications n'ont pas été effacées. Merci.

14
Tedha

Vous devez définir le IconBadgeNumber sur 0 et annuler les notifications en cours. Je ne l'ai jamais fait à Swift, mais je pense que le code correspondant serait le suivant:

application.applicationIconBadgeNumber = 0 
application.cancelAllLocalNotifications()
12
Icaro

Dans iOS 10, les solutions sont avant tout amorties 

'cancelAllLocalNotifications ()' est obsolète dans iOS 10.0: utilisez le cadre UserNotifications Framework - [UNUserNotificationCenter removeAllPendingNotificationRequests]

Utilisez le code ci-dessous pour annuler la notification et réinitialiser le nombre de badges

Pour iOS 10, Swift 3.0

cancelAllLocalNotifications déconseillé d'iOS 10.

@available(iOS, introduced: 4.0, deprecated: 10.0, message: "Use UserNotifications Framework's -[UNUserNotificationCenter removeAllPendingNotificationRequests]")
open func cancelAllLocalNotifications()

Vous devrez ajouter cette déclaration d'importation,

import UserNotifications

Obtenir un centre de notification. Et effectuez l'opération comme ci-dessous

application.applicationIconBadgeNumber = 0 // For Clear Badge Counts
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications() // To remove all delivered notifications
center.removeAllPendingNotificationRequests() // To remove all pending notifications which are not delivered yet but scheduled.

Si vous souhaitez supprimer une ou plusieurs notifications spécifiques, vous pouvez y parvenir par la méthode ci-dessous.

center.removeDeliveredNotifications(withIdentifiers: ["your notification identifier"])

J'espère que ça aide..!!

17
Naveed Ahmad

Je dois incrémenter puis décrémenter le nombre de badges pour que cela fonctionne:

application.applicationIconBadgeNumber = 1
application.applicationIconBadgeNumber = 0
application.cancelAllLocalNotifications()
1
MobileMon

Swift 3

Dans votre fichier AppDelegate.Swift sous didFinishLaunchingWithOptions, ajoutez:

application.applicationIconBadgeNumber = 0

Lors du lancement de votre application, cela supprimera le badge iOS (cercle rouge en haut à droite de l'icône de l'application).

1
Timmy Sorensen