userNotificationCenter didReceive 响应包含空通知(watchOS)

Posted

技术标签:

【中文标题】userNotificationCenter didReceive 响应包含空通知(watchOS)【英文标题】:userNotificationCenter didReceive response contains empty notification (watchOS) 【发布时间】:2020-10-18 18:17:50 【问题描述】:

我正在尝试从 watchOS 中的userNotificationCenter(_:didReceive:withCompletionHandler:) 检索原始通知内容。从 APNS 发送推送通知时,我设法触发了回调,但不幸的是,response 对象包含一个空的notification

<UNNotificationResponse: 0x600003bc0b40; actionIdentifier: start, notification: (null)>

我正在使用 Apple 文档中 Listing 1 中的示例。

20 年 10 月 19 日更新

我创建了一个示例项目SampleNotification 来重现该问题(有关如何重现,请参阅 README.md)。我注意到只有当用户按下UNNotificationAction 时,回调才会返回一个空通知。此外,我确认在 ios没有观察到这种模式。

看来userNotificationCenter(_:willPresent:withCompletionHandler:)收到的同一个通知不为空!

如果有任何反馈,我将不胜感激

【问题讨论】:

你能解决这个问题吗? 不,我很惊讶没有人遇到同样的问题。我注意到如果您在UNNotificationAction 中有options: [.foreground],问题仍然存在。在所有其他情况下,都会填充通知对象。 我也遇到了同样的问题,我不知道为什么,但它在 xcode 11 中工作正常,在我将其更新到 12 后,我遇到了这个问题。我不知道,可能是 xcode 中的更新导致这个问题 @jiko 你找到解决办法了吗? 【参考方案1】:

我在使用 watchOS 7.1 和 ios 14.1 时遇到了同样的问题。我联系了 Apple 技术支持团队。这是我从他们那里得到的答复

“我们的工程师已经审核了您的请求,并确定您遇到了一个已知问题,目前没有已知的解决方法。”

【讨论】:

喜欢“目前没有已知的解决方法”! 我仍然遇到同样的问题,请做点什么......

以上是关于userNotificationCenter didReceive 响应包含空通知(watchOS)的主要内容,如果未能解决你的问题,请参考以下文章

从 userNotificationCenter 检索通知类型:didReceiveNotificationResponse:withCompletionHandler:

userNotificationCenter didReceive 响应包含空通知(watchOS)

iOS 将通知对象发送到 UserNotificationCenter 和 didFinishLaunchingWithOptions

通知不会触发 macOS Big Sur 11.6 上的 userNotificationCenter

为啥 userNotificationCenter didReceive 没有被解雇?

单元测试 UNUserNotificationCenterDelegate 方法