การอัปเดตป้าย iOS โดยไม่มีการแจ้งเตือนแบบพุช


86

ฉันเคยเห็นสิ่งที่ต้องทำสองสามแอปที่อัปเดตป้ายแอปตอนเที่ยงคืนซึ่งแสดงจำนวนงานที่ต้องชำระที่ถูกต้องเสมอ พวกเขาทำสิ่งนี้โดยไม่ต้องใช้การแจ้งเตือนแบบพุชดังนั้นคำถามของฉันคือ: พวกเขาทำสิ่งนี้ได้อย่างไร? พวกเขาใช้การแจ้งเตือนในพื้นที่หรือไม่หากเป็นเช่นนั้นสิ่งเหล่านี้ถูกเรียกเมื่อปิดอุปกรณ์หรือไม่ ฉันสับสนเล็กน้อยและขอขอบคุณข้อมูลบางส่วน

คำตอบ:


137

ลองทำตามนี้

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

ในการดำเนินการนี้ผ่านการแจ้งเตือนในพื้นที่คุณต้องตั้งค่าเป็น applicationIconBadgeNumber

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

1
นี่คือวิธีที่คุณเปลี่ยนหมายเลขป้าย แต่หากต้องการดำเนินการในขณะที่แอปทำงานอยู่เบื้องหลังหรือในกรณีที่โทรศัพท์อยู่ในโหมดสลีปคุณอาจต้องตรวจสอบการแจ้งเตือนในพื้นที่หรืองานที่กำหนดเวลาไว้
Jasarien

2
ใน iOS 8.0 ขึ้นไปแอปพลิเคชันของคุณต้องลงทะเบียนเพื่อรับการแจ้งเตือนผู้ใช้โดยใช้ - [UIApplication registerUserNotificationSettings:] ก่อนจึงจะสามารถตั้งค่าตราไอคอนได้
ยกเลิก

17

และสำหรับทุกคนที่ใช้ Swift ใหม่และเงางาม:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
เมื่อแนะนำคำตอบที่รวดเร็วคุณควรรวมเวอร์ชันที่คุณกำลังพูดถึงเนื่องจากเป็นแบบไดนามิกมากในขณะนี้
Juan Boero

ใช่คุณถูก ; อย่างไรก็ตามในกรณีนี้ไม่มีอะไรในไวยากรณ์ที่อาจเปลี่ยนแปลงได้ (เป็นการกำหนดแบบง่าย ๆ ) ดังนั้นอาจไม่จำเป็น :)
Jiri Trecak

3
Jiri ความคิดเห็นที่น่าขบขันในการมองย้อนกลับไป ;-)
Tim

13

ตั้งแต่ iOS 4.0 คุณสามารถเริ่มการแจ้งเตือนในเครื่องบนอุปกรณ์ทั้งหมดที่ใช้ iOS 4.0 เป็นอย่างน้อย ดูในUILocalNotificationชั้นเรียนจะช่วยให้คุณสามารถตั้งค่าป้ายในเวลาเที่ยงคืนได้โดยไม่ต้องให้แอปทำงาน


อืม iPhone ไม่สามารถแม้แต่จะเริ่มนาฬิกาปลุกเมื่อปิดเครื่องดังนั้นไม่ป้ายจะไม่อัปเดต แต่เมื่อคุณเปิดอีกครั้งระบบจะเริ่มการแจ้งเตือนที่จะอัปเดตป้าย
JustSid

ตกลงนั่นคือสิ่งที่ฉันอยากรู้ ขอบคุณ!
fabian789

7

ชุดUIApplicationของapplicationIconBadgeNumberสถานที่ให้บริการในรหัสของคุณเมื่อโปรแกรมทำงาน:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.