Memperbarui lencana iOS tanpa pemberitahuan push

86

Saya telah melihat beberapa aplikasi rencana yang memperbarui lencana aplikasinya pada tengah malam, selalu menunjukkan jumlah tugas yang benar. Mereka melakukan ini tanpa menggunakan Pemberitahuan Push - jadi pertanyaan saya adalah: bagaimana mereka melakukan ini? Apakah mereka menggunakan pemberitahuan lokal - jika demikian, apakah ini dipanggil saat perangkat dimatikan? Saya agak bingung dan sangat menghargai masukan.

fabian789
sumber

Jawaban:

137

Coba ini

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Untuk melakukan ini melalui pemberitahuan lokal, Anda harus mengatur nilainya applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge
raaz
sumber
1
Ini adalah cara Anda mengubah nomor lencana - tetapi untuk melakukannya saat aplikasi berada di latar belakang atau jika ponsel tertidur, Anda mungkin perlu melihat pemberitahuan lokal, atau tugas terjadwal.
Jasarien
2
Di iOS 8.0 dan yang lebih baru, aplikasi Anda harus mendaftar untuk pemberitahuan pengguna menggunakan - [UIApplication registerUserNotificationSettings:] sebelum dapat menyetel lencana ikon.
unom
17

Dan untuk semua orang yang menggunakan Swift baru dan berkilau:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Cepat 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber
Jiri Trecak
sumber
2
ketika menyarankan jawaban cepat, merupakan praktik yang baik untuk menyertakan versi mana yang Anda liput, karena versi itu sangat dinamis saat ini.
Juan Boero
ya kamu benar ; Namun dalam kasus ini, tidak ada sintaks yang dapat berubah (ini adalah tugas sederhana) jadi mungkin tidak diperlukan :)
Jiri Trecak
3
Jiri, komentar lucu di belakang ;-)
Tim
13

Sejak iOS 4.0 Anda dapat mengaktifkan pemberitahuan lokal di semua perangkat yang menjalankan setidaknya iOS 4.0. Lihat ke dalam UILocalNotificationkelas, ini memungkinkan Anda untuk menyetel lencana pada tengah malam tanpa aplikasi Anda berjalan.

JustSid
sumber
Uhm, iPhone bahkan tidak mampu memulai jam alarm saat dimatikan, jadi tidak, lencana tidak akan diperbarui saat itu. Tetapi ketika Anda menyalakannya kembali, itu akan mengaktifkan pemberitahuan yang akan memperbarui lencana.
JustSid
Ok, itulah yang ingin saya ketahui. Terima kasih!
fabian789
7

Set UIApplication's applicationIconBadgeNumberproperti di kode Anda saat aplikasi sedang berjalan:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;
Vladimir
sumber
0

Untuk Objective C, Anda harus menggunakan:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            
Vaibhav Shiledar
sumber
0

Cepat 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Ben
sumber