有没有简单的方法来检测桌面和移动浏览器中 Web Push API 的功能?
有些浏览器版本仅支持Service Worker而不支持Push API。
建议检测Push API本身。
如果您需要以同步方式(即不等待Promise)检查浏览器支持情况,可以使用此代码(从Pushpad SDK复制):
function isPushApiSupported() {
return 'PushManager' in window;
}
目前,任何支持Service Workers的浏览器也支持Web Push。
因此,只需检查navigator
是否具有serviceWorker
属性。
如果您担心将来某些浏览器在支持Web Push之前开始支持Service Workers,可以使用以下类似代码:
navigator.serviceWorker.getRegistration()
.then(function(registration) {
if (registration.pushManager) {
// Web Push supported.
} else {
// Web Push not supported.
}
});