Swift- Hapus nomor Badge Pemberitahuan Push?

91

Saya mencoba menghapus lencana ikon dengan cepat, tetapi PFInstallation sepertinya tidak berfungsi lagi. Bagaimana saya melakukan ini?

ByteDuck
sumber

Jawaban:

240

Anda dapat "menghapus" ikon lencana aplikasi dengan menyetelnya ke 0:

Swift <3.0

UIApplication.sharedApplication().applicationIconBadgeNumber = 0

Swift 3.0+

UIApplication.shared.applicationIconBadgeNumber = 0

Pertanyaan ini menunjukkan kapan Anda dapat menggunakannya: Bagaimana cara menghapus jumlah lencana pemberitahuan push di iOS?

Oxcug
sumber
4
Jadi, apakah praktik standar untuk menyetel ulang ke 0 setiap kali aplikasi dimulai?
Qian Chen
4
@ElgsQianChen sangat bergantung pada apa yang seharusnya dilakukan aplikasi Anda / apa yang terbaik untuk audiens Anda. Pertanyaan itu mungkin lebih baik disajikan di UX SO.
Oxcug
1
Kedua itu. Mungkin Anda ingin memastikan pengguna benar-benar ditangani dengan penyebab pemberitahuan (misalnya, tidak membaca pesan yang belum dibaca) sebelum kliring itu. Aplikasi yang berbeda menangani ini secara berbeda. Beberapa jelas saat peluncuran, beberapa jelas tentang tindakan pengguna dalam aplikasi.
Nicolas Miari
4
UIApplication.shared.applicationIconBadgeNumber = 0dengan Swift 3
user3766930
Saya pikir ini masuk akal yaitu. saat pengguna keluar dari aplikasi.
wrtsprt
18

Swift 4.2.0

Di AppDelegate, masukkan saja kode ini:

    func applicationDidBecomeActive(_ application: UIApplication) {
        application.applicationIconBadgeNumber = 0
    }
Tiago Oliveira
sumber
9

Cepat 5

Di AppDelegate didFinishLaunchingWithOptions

UIApplication.shared.applicationIconBadgeNumber = 0
Mohhamed Nabil
sumber
1

Cepat 5

Meskipun Anda dapat meletakkan ini di AppDelegate didFinishLaunchingWithOptions, ini tidak akan menghapus lencana jika aplikasi tidak aktif dan telah pindah ke aktif.

Jika Anda ingin menghapus lencana terlepas dari status sebelumnya, Anda harus meletakkannya di SceneDelegate alih-alih AppDelegate.

func sceneDidBecomeActive(_ scene: UIScene) {
    UIApplication.shared.applicationIconBadgeNumber = 0
}
Mendarat di
sumber