【问题标题】:Check if browser notification is available检查浏览器通知是否可用
【发布时间】:2016-11-20 05:05:42
【问题描述】:

我正在处理浏览器通知,因为它不适用于我想要签入我的 JS 代码(如果可用)的每个浏览器。

我查看了 Mozilla 开发者部分:
https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API

他们告诉我应该使用这段代码来检查浏览器是否支持通知:

  if (!("Notification" in window)) {
    alert("This browser does not support system notifications");
  }

我将该代码复制到我的网站中;该通知在之前工作的浏览器中仍然有效,但它会阻止其他代码的执行(就像在“检查”代码之前所做的那样)。

例如:在边缘浏览器中,我得到控制台错误:

 'Notification is undefined'

那么您首选的方法是检查浏览器是否具有通知功能?

【问题讨论】:

  • 如果 ("Notification" in window)false,那么您的代码必须避免使用任何 API。
  • 对不起,我的错!我必须在我的代码中检查两次,但我错过了一次。

标签: javascript browser notifications


【解决方案1】:

以下代码将检查浏览器是否与网络通知 API 兼容

if ('Notification' in window) {
  // API supported
} else {
  // API not supported
}

【讨论】:

  • @JeroenVannevel 代码正在检查全局 window 对象是否具有 Notification 作为其属性。如果支持,则当前浏览器支持 Notification API。
【解决方案2】:

您还应该检查前缀版本:

var NotificationIsSupported = !!(window.Notification /* W3C Specification */ || window.webkitNotifications /* old WebKit Browsers */ || navigator.mozNotification /* Firefox for Android and Firefox OS */)

您可以在this article 中阅读有关如何执行此操作的更多信息。文章中还有很多如何支持其他设备的代码示例。

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 2013-05-29
    • 2021-06-05
    • 2017-06-22
    • 2012-08-31
    • 2011-10-21
    • 2016-10-24
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多