Como posso fazer notificações push em uma aplicação web HTML5?
Tenho uma aplicação web. Eu quero usar a API de notificações inbuilt HTML 5 para fazer notificações push do servidor quando o usuário está em uma página particular. É possível?
2 answers
Você pode fazer notificações de push reais com aplicações Web hoje no Chrome usando Os trabalhadores dos serviços e O 'PushManager' do W3C Push API.
Veja o artigo empurrar as notificações na web aberta para um excerto passo-a-passo de how-to e de código que possa usar. Aqui está um diagrama desse artigo que explica como a IU em torno dele se parece.
A implementação da API de Push já aterrou no Firefox também; é alvo de transporte marítimo em novembro de 2015 no Firefox 42. E a Microsoft indicou que a API Push também está em consideração para a implementação na Edge team.
Abaixo está um exemplo de código simples, emprestado do MDN.
this.onpush = function(event) {
console.log(event.data);
}
navigator.serviceWorker.register('serviceworker.js').then(
function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe().then(
function(pushSubscription) {
console.log(pushSubscription.subscriptionId);
console.log(pushSubscription.endpoint);
}, function(error) {
console.log(error);
}
);
}
);
Depende do que queres alcançar:
- Se quiser mostrar as notificações push ao utilizador enquanto está a navegar no seu website, poderá usar a API das notificações Web para dar à notificação um estilo "nativo"; Poderá também usar uma tecnologia como o SSE ou WebSockets para empurrar a notificação do seu servidor para o cliente
- Se quiser notificações de push fora do local (que são entregues mesmo quando o utilizador não está no seu site) deve usar uma combinação de trabalhadores de serviços e pressione a API para despoletar o evento offline e use a API das notificações para mostrar a notificação (Ver a minha resposta)