Cập nhật huy hiệu iOS mà không có thông báo đẩy


86

Tôi đã thấy một số ứng dụng todo cập nhật huy hiệu ứng dụng của họ vào lúc nửa đêm, luôn hiển thị đúng số lượng nhiệm vụ đến hạn. Họ làm điều này mà không cần sử dụng Thông báo đẩy - vì vậy câu hỏi của tôi là: họ làm điều này như thế nào? Họ có sử dụng thông báo cục bộ không - nếu có, những thông báo này có được gọi khi thiết bị tắt không? Tôi hơi bối rối và sẽ đánh giá cao một số đầu vào.

Câu trả lời:


137

Thử đi

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Để thực hiện việc này thông qua các thông báo cục bộ, bạn phải đặt giá trị trong applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge

1
Đây là cách bạn thay đổi số huy hiệu - nhưng để làm điều đó trong khi ứng dụng ở chế độ nền hoặc nếu điện thoại ở chế độ ngủ, bạn có thể cần phải xem thông báo cục bộ hoặc các tác vụ đã lên lịch.
Jasarien

2
Trong iOS 8.0 trở lên, ứng dụng của bạn phải đăng ký nhận thông báo của người dùng bằng - [UIApplication registerUserNotificationSettings:] trước khi có thể đặt huy hiệu biểu tượng.
unom

17

Và cho tất cả mọi người sử dụng Swift mới và sáng bóng:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
Khi đề xuất các câu trả lời nhanh, bạn nên đưa vào phiên bản mà bạn đang đề cập, vì hiện tại nó rất năng động.
Juan Boero

vâng bạn đúng; Trong trường hợp này tuy nhiên, không có gì trong cú pháp mà có thể có thể thay đổi được (đó là nhiệm vụ đơn giản) nên có lẽ không cần thiết :)
Jiri Trecak

3
Jiri, bình luận thú vị trong nhận thức muộn màng ;-)
Tim

13

Kể từ iOS 4.0, bạn có thể kích hoạt thông báo cục bộ trên tất cả các thiết bị chạy ít nhất iOS 4.0. Nhìn vào UILocalNotificationlớp học, nó cho phép bạn đặt huy hiệu vào lúc nửa đêm mà không cần chạy ứng dụng của bạn.


Uhm, iPhone thậm chí không có khả năng khởi động đồng hồ báo thức khi tắt nguồn, vì vậy không, huy hiệu sẽ không cập nhật sau đó. Nhưng khi bạn bật lại, nó sẽ kích hoạt (các) thông báo cập nhật huy hiệu.
JustSid

Ok, đó là những gì tôi muốn biết. Cảm ơn!
fabian789

7

Set UIApplication's applicationIconBadgeNumbertài sản trong mã của bạn khi ứng dụng đang chạy:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

0

Đối với Objective C, bạn phải sử dụng:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

Swift 5

UIApplication.shared.applicationIconBadgeNumber = someNumber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.