ฉันมีแอปพลิเคชัน iOS ที่มีการส่ง Push Notification ไปที่ ปัญหาของฉันคือข้อความ / การแจ้งเตือนยังคงอยู่ในศูนย์การแจ้งเตือนใน iOS หลังจากนั้นจะถูกแตะ ฉันจะลบการแจ้งเตือนสำหรับแอปพลิเคชันของฉันในศูนย์การแจ้งเตือนในครั้งถัดไปที่แอปพลิเคชันเปิดขึ้นได้อย่างไร
ฉันเจอโพสต์ที่มีคนโทรหาsetApplicationIconBadgeNumber
ค่าศูนย์เพื่อล้างการแจ้งเตือน มันดูแปลกมากสำหรับฉันดังนั้นฉันเชื่อว่าอาจมีทางออกอื่นอยู่?
แก้ไข 1:
ฉันมีปัญหาในการล้างการแจ้งเตือน โปรดดูรหัสของฉันที่นี่:
- (void) clearNotifications {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
NSLog(@"Launched from push notification: %@", dictionary);
[self clearNotifications];
}
}
return YES;
}
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[self clearNotifications];
}
ฉันใช้งานแอพผ่าน Xcode เมื่อแอปถูกย่อเล็กสุดและฉันเริ่มแอปโดยใช้การแจ้งเตือนในศูนย์การแจ้งเตือนฉันเห็นในบันทึกว่าdidReceiveRemoteNotification
มีการเรียกและใช้เบรกพอยต์ที่ฉันเห็นว่าแอปclearNotifications
ทำงานแล้ว แต่การแจ้งเตือนยังคงค้างอยู่ในศูนย์การแจ้งเตือน ทำไม?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650