是否有任何简单的方法可以在浏览器(桌面和移动设备)中检测Web Push API
答案 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.
}
});