删除特定notification

发布于 2022-09-12 00:19:21 字数 1891 浏览 19 评论 0

我的app已经开启了remote notification, 并且当app处于后台状态的时候调用[[UNUserNotificationCenter currentNotificationCenter] removeDeliveredNotificationsWithIdentifiers:@[request.identifier]]是可以正常的删除对应的推送通知.但是当我把APP杀死之后,调用该方法也无法删除对应的推送,只有当进入app的时候才会删除对应的推送.请问有什么解决办法吗?

    NSString *key = userInfo[@"aps"][@"extendInfo"][@"name"];
    NSString *type = userInfo[@"aps"][@"alert"][@"title"];
    
    if ([type isEqualToString:@"deleteChannel"]) {
        [[UNUserNotificationCenter currentNotificationCenter] getDeliveredNotificationsWithCompletionHandler:^(NSArray<UNNotification *> * _Nonnull notifications) {
            if (notifications.count == 0) {
                completionHandler(UIBackgroundFetchResultNewData);
                return;
            }
            else {
                for (UNNotification *notice in notifications) {
                    UNNotificationRequest *request = notice.request;
                    UNNotificationContent *content = request.content;
                    NSDictionary *userInfo1 = content.userInfo;
                    NSString *title = userInfo1[@"aps"][@"alert"][@"body"];
                    if ([title isEqualToString: key]) {
                        [[UNUserNotificationCenter currentNotificationCenter] removeDeliveredNotificationsWithIdentifiers:@[request.identifier]];
                        break;
                    }
                    
                }
                completionHandler(UIBackgroundFetchResultNewData);
            }
        }];
    }
    else {
        switch (application.applicationState) {
            case UIApplicationStateActive:
            case UIApplicationStateInactive:
            case UIApplicationStateBackground: {
                completionHandler(UIBackgroundFetchResultNewData);
                break;
            }
            default:
                break;

        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不即不离 2022-09-19 00:19:21

你好 你这个代码是写在 didReceiveRemoteNotification里面吗? 我怎么写过后 不执行呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文