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.

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

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

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.


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;

0

Untuk Objective C, Anda harus menggunakan:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

Cepat 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.