Swift: rimuovere il numero del badge di notifica push


91

Sto cercando di rimuovere il badge dell'icona in modo rapido, ma PFInstallation non sembra funzionare più. Come faccio a fare questo?

Risposte:


240

Puoi "rimuovere" l'icona del badge dell'app impostandola su 0:

Swift <3.0

UIApplication.sharedApplication().applicationIconBadgeNumber = 0

Swift 3.0+

UIApplication.shared.applicationIconBadgeNumber = 0

Questa domanda mostra quando puoi usarlo: come cancellare il conteggio dei badge di notifica push in iOS?


4
Quindi è prassi normale reimpostarlo a 0 ogni volta che l'app viene avviata?
Qian Chen

4
@ElgsQianChen dipende davvero da cosa dovrebbe fare la tua app / cosa è meglio per il tuo pubblico. Questa domanda è probabilmente meglio servita in UX SO.
Oxcug

1
Secondo quello. Forse vuoi assicurarti che l'utente abbia effettivamente affrontato la causa della notifica (ad esempio, ha letto un messaggio non letto) prima di cancellarlo. App diverse si occupano di questo in modo diverso. Alcuni chiari all'avvio, altri chiari sull'azione dell'utente all'interno dell'app.
Nicolas Miari

4
UIApplication.shared.applicationIconBadgeNumber = 0con Swift 3
utente3766930

Penso che questo abbia senso, ad es. quando l'utente si disconnette dall'app.
Wrtsprt

18

Swift 4.2

In AppDelegate, inserisci questo codice:

    func applicationDidBecomeActive(_ application: UIApplication) {
        application.applicationIconBadgeNumber = 0
    }

9

Swift 5

In AppDelegate didFinishLaunchingWithOptions

UIApplication.shared.applicationIconBadgeNumber = 0

1

Swift 5

Anche se puoi metterlo in AppDelegate didFinishLaunchingWithOptions, questo non cancellerà il badge se l'app è inattiva e è passata ad attiva.

Se desideri cancellare il badge indipendentemente dallo stato precedente, devi inserirlo in SceneDelegate invece che in AppDelegate.

func sceneDidBecomeActive(_ scene: UIScene) {
    UIApplication.shared.applicationIconBadgeNumber = 0
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.