Есть ли какой-либо простой способ обнаруживать Web Push API в браузерах (настольных и мобильных)Как сделать обнаружение функции для Web Push?
ответ
Некоторые версии браузеров поддерживают только работника службы, но не Push API.
Рекомендуется попытаться обнаружить сам API Push.
Если вам необходимо проверить поддержку браузера в синхронным образом (то есть, не дожидаясь Promise), вы можете использовать это (копируется из Pushpad SDK):
function isPushApiSupported() {
return 'PushManager' in window;
}
В настоящее время любой браузер, который поддерживает Service Workers, также поддерживает Web Push.
Так что просто проверьте, есть ли у navigator
имущество serviceWorker
.
Если вы боитесь в будущем некоторые браузеры могут начать поддерживать службы работников, прежде чем веб-Пуш, что-то, как это будет работать:
navigator.serviceWorker.getRegistration()
.then(function(registration) {
if (registration.pushManager) {
// Web Push supported.
} else {
// Web Push not supported.
}
});
'' registration' является null' если рабочий сервис не контролирует текущую страницу. – Jason
Интересно, что я не знал, что некоторые браузеры не поддерживают Push API, но поддерживают сервис-работников! Какие они? – Marco
Firefox для мобильных устройств поддерживает serviceworker, но не Push API –