ios - 如何删除 UNNotificationContentExtension 显示的视图
问题描述
我曾经UNNotificationContentExtension
从用户那里进行调查。
条件是我没有打开父应用程序。
这是表情符号动作
if #available(iOSApplicationExtension 12.0, *) {
// API call here
self.extensionContext?.dismissNotificationContentExtension()
} else {
// Fallback on earlier versions
}
每个表情符号都有动作。当用户点击表情符号时,我会将响应发送到服务器并删除此通知。一切都将发生在扩展部分
有什么问题?
使用dismissNotificationContentExtension
通知关闭和隐藏即时。它再次在通知屏幕中找到。当用户点击表情符号按钮时,如何删除此通知。
解决方案
这就是我的解决方案的工作方式。缺点:删除了所有已发送的相同类别的通知,而不是删除当前消息。
@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")
}
}
推荐阅读
- git - 如何使用 git 交互式 rebase 将提交折叠到以下提交中
- javascript - ReferenceError:全局未使用 web3 定义
- c++ - 将成员函数转换为指向成员函数的指针
- windows - 如何在 nginx 中为 ddev 添加 CORS
- selenium - 无法从下拉列表中选择值... selenium 无法使用我使用 chrome 复制的上述 xpath 找到元素
- c# - 如何遍历产品列表并在后面的代码上从 SchemaWorker 创建 jsonContent?
- python - 如何使用 Django 将 postgres 表默认 ID 设置为 uuid_generate_v4()
- .net - CurrentCulture 与 CurrentUICulture 不同 - 特定软件的问题 - Windows Server 2012
- arrays - 如何查询这种类型的 json?
- java - Gradle:由 gradle bootJar 任务创建的 jar 不起作用