如何为Web推送做特征检测

How to do feature detection for Web Push?

本文关键字:特征检测 Web      更新时间:2023-09-26

是否有简单的方法来检测浏览器(桌面和移动)中的Web Push API

有些浏览器版本只支持service worker而不支持Push API。

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

如果你需要以同步方式检查浏览器支持(即不等待Promise),你可以使用这个(从Pushpad SDK复制):

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

目前,所有支持Service worker的浏览器都支持Web Push。

检查navigator是否具有serviceWorker属性。

如果你担心将来某些浏览器可能会在Web Push之前开始支持Service worker,那么像这样做就可以了:

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