Tôi có một ứng dụng iOS nơi một số Thông báo đẩy được gửi đến. Vấn đề của tôi là các tin nhắn / thông báo vẫn nằm trong Trung tâm thông báo trong iOS sau khi được nhấn. Làm cách nào để xóa thông báo cho ứng dụng của tôi trong Trung tâm thông báo vào lần tiếp theo ứng dụng mở ra?
Tôi đã xem các bài đăng mà mọi người đang gọi setApplicationIconBadgeNumber
đến giá trị 0 để xóa thông báo. Điều đó có vẻ rất kỳ lạ đối với tôi, vì vậy tôi tin rằng có thể có một giải pháp khác?
CHỈNH SỬA1:
Tôi đang gặp một số sự cố khi xóa thông báo. Vui lòng xem mã của tôi tại đây:
- (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];
}
Tôi đang chạy Ứng dụng thông qua Xcode. Khi Ứng dụng được thu nhỏ và tôi khởi động Ứng dụng bằng thông báo trong Trung tâm thông báo, tôi có thể thấy trong nhật ký, rằng ứng dụng didReceiveRemoteNotification
được gọi và sử dụng các điểm ngắt mà tôi có thể thấy, rằng ứng dụng clearNotifications
đã chạy. Nhưng thông báo vẫn bị treo trong Trung tâm thông báo. Tại sao?
let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() // To remove all delivered notifications
stackoverflow.com/a/40397907/1155650