ios - 关闭 UserNotificationsUI - UNNotificationContentExtensionResponseOption

标签 ios swift usernotifications notification-action notification-content-extension

我正在设置多个本地通知,并且我已设置通知的操作数。比如打盹、展示、关闭。

    func didReceive(_ response: UNNotificationResponse, completionHandler completion:  @escaping (UNNotificationContentExtensionResponseOption) -> Void) {


    let id = response.notification.request.identifier

       if response.actionIdentifier == "SnoozeId" {
        completion(UNNotificationContentExtensionResponseOption.dismiss)

           }}

在 didReceive 上 - 如果操作是暂停 - 执行暂停,然后我忽略通知。当我关闭时,所有其他通知都从通知中心消失了。如果我有两个通知 A 和 B 。 如果我长按并在 A 上执行小睡。 A和B都从通知中心消失了。它应该只驳回 A。

最佳答案

以下是使用我的应用程序进行测试的结果。

为了更好地回答您的问题,请提供更多信息,例如 - 通知的 json 及其 userInfo(也许您正在对通知进行分组并立即取消所有通知?)以及您正在调用的函数会导致调用didReceive(...)。

如果你打电话

self.extensionContext?.dismissNotificationContentExtension()

然后它会关闭内容扩展,但不会将其关闭。

如果您调用:

self.extensionContext?.performNotificationDefaultAction()

然后它完成操作并消除该单个通知(而不是其他通知)。但是,这会打开应用程序,您可能不想这样做。

我的委托(delegate)设置如下:

func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {

    switch response.actionIdentifier {
    case UNNotificationDismissActionIdentifier:
        // Dismiss action stuff.
        completion(.dismiss)
        // To not dismiss
        // completion(.doNotDismiss)
    case UNNotificationDefaultActionIdentifier:
        // Default action stuff.
        // Let's say the user executed default action, we want to dismiss and forward the action.
        completion(.dismissAndForwardAction)
        break
    default:
        break
    }
}

关于ios - 关闭 UserNotificationsUI - UNNotificationContentExtensionResponseOption,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800313/

相关文章:

ios - UIViewController 最佳实践——加载

ios - 在 iphone 6 上具有 600x600 pt 框架的 UIViews 加上尺寸等级

ios - 将纬度和经度放在 map View 上

swift - LocalNotification警报干扰

ios - 我是否必须做一些特别的事情才能让 TestFlight 构建使用我的通知扩展目标?它被忽略了

ios - 在 swift 的文本字段中显示带字符串的表情符号

ios - 检查SKProduct是否已购买

ios - 在 Swift 中从 URL 播放视频

ios - AVPlayer - 从本地 URL 播放

swift - 为什么只调用我的最后一个本地通知函数?