如何进行Web Push的功能检测?

时间:2016-08-12 07:44:46

标签: javascript service-worker web-push push-api

是否有任何简单的方法可以在浏览器(桌面和移动设备)中检测Web Push API

2 个答案:

答案 0 :(得分:9)

某些浏览器版本仅支持服务工作者,但不支持Push API。

建议您尝试检测Push API本身。

如果您需要以同步方式检查浏览器支持(即无需等待Promise),您可以使用此功能(从Pushpad SDK复制):

function isPushApiSupported() {
  return 'PushManager' in window;
}

答案 1 :(得分:3)

目前,任何支持Service Workers的浏览器也支持Web Push。

因此,只需检查navigator是否有serviceWorker属性。

如果您将来害怕某些浏览器可能会在Web推送之前开始支持服务工作者,那么这样的工作就可以了:

navigator.serviceWorker.getRegistration()
.then(function(registration) {
  if (registration.pushManager) {
    // Web Push supported.
  } else {
    // Web Push not supported.
  }
});