1

Я работаю с JavaScript-уведомлением API, чтобы показать небольшое сообщение для моих пользователей. Он работает на каждом настольном браузере, с которым я тестировал, включая Chrome ... но не Chrome для Android (по крайней мере, KitKat). Все, что я читал, говорит о том, что Android Chrome поддерживает API уведомлений по состоянию на апрель 2015 года, а приложение даже имеет настройки для разрешений для уведомлений ... но ничего не происходит, когда я вызываю новое уведомление (...) из него. На самом деле даже официальная демонстрационная страница Mozilla Notification API не показывает их, несмотря на возможность получить информацию о разрешениях и т. Д.Вызов JavaScript-уведомления API для Google Chrome для Android не работает непосредственно с веб-страницы

Есть ли что-то особенное, что мне нужно сделать, чтобы сделать уведомления совместимыми с Android Chrome?

+1

Вы попробовали здесь примеры уведомлений? https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=ru – Mohammad

+0

Вау. Похоже, Google не только использует свою собственную систему уведомлений, но также требует, чтобы HTTPS просто использовал ее. Это раздражает. Спасибо за помощь. – IceMetalPunk

+0

Существует разница между «API уведомлений Chrome», который предоставляется для расширений Chrome, и «API уведомлений Chrome Push» для использования в мобильных устройствах. ** [Здесь] (https://developer.chrome.com/apps/notifications) ** пример для API уведомлений для приложений Chrome. До дня назад они говорили о Push Notification API в ChromeDevSummit, но все же есть некоторые ограничения. – Mohammad

ответ

2

В Chrome для Android вы можете открывать уведомление только с помощью Service Worker. Служащий службы - это скрипт, который работает рядом с браузером и может быть загружен даже тогда, когда страница или браузер закрыты.

Основная причина, лежащая в основе требования обслуживающего персонала, заключается в том, что уведомление может пережить продолжительность жизни браузера (то есть пользователь может закрыть браузер), и уведомление будет по-прежнему активным, поэтому, когда пользователь нажимает на уведомление Android нужно разбудить «что-то», это «что-то» - это «Служащий».

Этот Notification Guide представляет собой хорошее представление о текущем состоянии уведомлений в Интернете и в Chrome - он немного фокусируется на передаче сообщений Push, но также содержит все сведения о том, как инициировать уведомление от Service Worker.

Это может показаться дополнительным обручем для перехода, но на самом деле это чистая выгода: ваше уведомление будет по-прежнему работать при нажатии, даже когда браузер закрыт.

+0

Это родственный ... кто-нибудь знает об этой проблеме https://stackoverflow.com/questions/44295835/ajax-not-working-on-mobile-chrome-shows-404 ???? Благодаря! – Omar

0

Проверьте это на совместимость: http://caniuse.com/#feat=notifications

"Частичная поддержка" Несмотря на то, как уже упоминалось Kinlan, можно с рабочими Web Service.

navigator.serviceWorker.register('sw.js'); 
 
Notification.requestPermission(function(result) { 
 
    if (result === 'granted') { 
 
    navigator.serviceWorker.ready.then(function(registration) { 
 
     registration.showNotification('Notification with ServiceWorker'); 
 
    }); 
 
    } 
 
});

sw.js файл может быть просто нулевой байт файла.

Кредитный платеж: HTML5 Notification not working in Mobile Chrome