我熟悉 浏览器通知 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 的浏览器兼容性表中?预先感谢!