Chrome 中的通知 requireInteraction 设置已损坏?

问题描述 投票:0回答:2

我熟悉 浏览器通知 API,但我似乎无法在 Chrome 中使用

requireInteraction
设置(我使用的是 Mac OSX,Chrome v89.0.4389.114。)我想要帮助确认这是否是一个已知的 Chrome 错误,或者也许我只是做错了什么。

授予通知权限后,从控制台运行以下命令会按预期显示瞬态通知,该通知会在约 5 秒后消失:

new Notification("Test", {body: "Foo", requireInteraction: false})

...而以下命令显示任何通知,即使是暂时的(尽管控制台显示返回的通知对象,该对象似乎设置了正确的值):

new Notification("Test", {body: "Foo", requireInteraction: true})

换句话说,在我迄今为止的所有测试中,

requireInteraction=true
会导致通知根本不显示,即使如果
requireInteraction=false
的话通知会正确显示。

我知道 Chrome 因在没有警告的情况下反复破坏标准 JS API 而享有盛誉,但令我惊讶的是,我找不到任何当前文档来确认这是一个已知问题。 (相关地,

requireInteraction
似乎对 Firefox v86.0.1 也没有任何影响。但我会单独解决这个问题。)我想我预计通知 API 现在会比这更稳定。

任何有帮助的人都可以确认

requireInteraction
设置是否适合您在最新的 Chrome 上(最好在 OSX 上,以尽量减少任何可能的平台差异)?这是浏览器错误吗?也许是 OSX 的限制?我使用的设置错误吗?或者这是一个已知问题,应该反映在 MDN 的浏览器兼容性表中?预先感谢!

google-chrome notifications
2个回答
6
投票

答案:放弃这个几个月后,我仔细观察了一下,发现我的 Mac OSX Chrome 通知设置被设置为“横幅”,但需要设置为“警报”。当 OSX 通知设置设置为“横幅”时,无论

requireInteraction
选项如何,Chrome 通知只会显示几秒钟,然后就会隐藏。 Chrome 的开发工具没有对此做出任何指示,我认为是因为 Chrome 无法看到操作系统级别的设置,因此浏览器没有意识到通知没有保留。

所以:如果

requireInteraction
不适合您,请检查您的操作系统通知设置!


0
投票

此处更新:Chrome 似乎改变了在 Mac 上注册通知权限的方式,因此现在有 2 个“应用程序”具有权限设置:一个用于警报,另一个用于其他所有内容。如果您打开警报助手,那么

requireInteraction: true
通知应该可以工作!

因此,与之前的答案相同的建议适用😁

所以:如果 requireInteraction 不适合您,请检查您的操作系统通知设置!

© www.soinside.com 2019 - 2024. All rights reserved.