首页 > 解决方案 > 如何删除 UNNotificationContentExtension 显示的视图

问题描述

我曾经UNNotificationContentExtension从用户那里进行调查。

在此处输入图像描述

条件是我没有打开父应用程序。

这是表情符号动作

    if #available(iOSApplicationExtension 12.0, *) {

        // API call here
        self.extensionContext?.dismissNotificationContentExtension()
    } else {
        // Fallback on earlier versions
    }

每个表情符号都有动作。当用户点击表情符号时,我会将响应发送到服务器并删除此通知。一切都将发生在扩展部分

有什么问题?

使用dismissNotificationContentExtension通知关闭和隐藏即时。它再次在通知屏幕中找到。当用户点击表情符号按钮时,如何删除此通知。

标签: iosobjective-cswiftpush-notificationapple-push-notifications

解决方案


这就是我的解决方案的工作方式。缺点:删除了所有已发送的相同类别的通知,而不是删除当前消息。

@IBAction func btnActionHappy(_ sender: Any) {
    
       UNUserNotificationCenter.current().getDeliveredNotifications { notifications in
            if #available(iOSApplicationExtension 12.0, *) {
                self.extensionContext?.dismissNotificationContentExtension()
            } else {
                // Fallback on earlier versions
            }

            let matchingNotifications = notifications.filter({ $0.request.content.categoryIdentifier == "debitOverdraftNotification" })
            UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: matchingNotifications.map({ $0.request.identifier }))
            
            print("Somethings")

        }
}

推荐阅读