使用 Notification.image 或 Notification.icon

Using Notification.image or Notification.icon

我正在为通知部署网络推送。一切正常,但我了解到某些浏览器不支持 Notification.image,或者至少不显示所述图像。但是,它们似乎都支持 Notification.icon,而 Firefox 在其丰富的推送示例中实际上使用 Notification.icon 来显示图像。

理想情况下,我希望在支持时使用 Notification.image,但在不支持时回退到 Notification.icon。然而,它并不只是为两者提供图像那么简单,因为在支持显示的浏览器上 Notification.image,你会得到它两次。

我想知道是否有人知道检测支持的方法。不幸的是,即使是不支持显示的浏览器仍然知道 Notification.image 是一个存在的东西,所以基本的特征检测已经过时了。我还想尽可能避免 UA 检测,因为跟上受支持的 UA 可能是一场噩梦。任何人都知道我遗漏了什么,或者您根据自己的经验是如何处理这个问题的?

好的。好吧,现在我觉得自己很愚蠢。嗯,这就是我们学习的方式。事实证明,您可以进行特征检测。我做了一个假设,因为 Notification.image 在 MDN 中,Firefox 至少会知道它,即使它是特别不支持显示它的浏览器之一。然后,我遇到了 this actually very helpful site,并注意到如果您的浏览器不支持特定部分,按钮会变灰。 "Image" 按钮是灰色的,所以必须有一种方法来检测支持,在挖掘网站的源代码后,我 face-palmed:

'image' in Notification.prototype

所以,是的,真的就是这么简单。至少这可以帮助其他人更快地找到答案。