Eu tenho lido há algumas horas sobre a API de notificação por push e a API de notificação da Web . Eu também descobri que o Google e a Apple oferecem serviço de notificação por push gratuitamente via GCM e APNS, respectivamente.
Estou tentando entender se podemos implementar a notificação por push nos navegadores usando a Notificação da área de trabalho, que acredito ser o que a API de notificação da Web faz. Vi uma documentação do Google sobre como isso pode ser feito para o Chrome aqui e aqui .
Agora, o que ainda não consigo entender é:
- Podemos usar o GCM / APNS para enviar notificações por push a todos os navegadores da Web, incluindo Firefox e Safari?
- Caso contrário, por meio do GCM, podemos ter nosso próprio back-end para fazer o mesmo?
Acredito que todas essas respostas em uma resposta podem ajudar muitas pessoas que estão tendo confusões semelhantes.
Respostas:
Então, aqui estou respondendo minha própria pergunta. Recebi respostas para todas as minhas perguntas de pessoas que criaram serviços de notificação por push no passado.
Responda às perguntas originais feitas há 3 anos:
Resposta: o Google descontinuou o GCM em abril de 2018. Agora você pode usar o Firebase Cloud Messaging (FCM). Isso suporta todas as plataformas, incluindo navegadores da web.
Resposta: Sim, a notificação por push pode ser enviada de nosso próprio back-end. Suporte para o mesmo chegou a todos os principais navegadores.
Verifique este codelab do Google para entender melhor a implementação.
Alguns tutoriais:
Implementando o próprio back-end em várias linguagens de programação .:
Leituras adicionais: - - A documentação do site do Firefox pode ser lida aqui . - Uma excelente visão geral do Web Push by Google pode ser encontrada aqui. - Um FAQ respondendo às confusões e perguntas mais comuns.
Existem serviços gratuitos para fazer o mesmo? Existem algumas empresas que oferecem uma solução semelhante nos modelos grátis, freemium e pago. Estou listando alguns abaixo:
Nota: Ao escolher um serviço gratuito, lembre-se de ler os Termos de Serviço. Os serviços gratuitos geralmente funcionam coletando dados do usuário para vários propósitos, incluindo análises.
Além disso, você precisa ter HTTPS para enviar notificações por push. No entanto, você pode obter https gratuitamente através do letsencrypt.org
fonte
onesignal
, informações legais: 3Javier cobriu as Notificações e as limitações atuais.
Minha sugestão:
window.postMessage
enquanto esperamos o navegador para deficientes, maisWorker.postMessage()
ainda continuamos operando com Web Workers.Pode ser a opção de fallback com o manipulador de exibição de mensagens da caixa de diálogo, para quando um teste de recurso de notificação falha ou a permissão é negada.
Notificação com recurso e verificação de permissão negada:
fonte
Você pode enviar dados do servidor para o navegador via Eventos do lado do servidor . Este é essencialmente um fluxo unidirecional no qual um cliente pode "se inscrever" em um navegador. A partir daqui, você pode simplesmente criar novos
Notification
objetos à medida que os SSEs fluem para o navegador:Um pouco antigo, mas este artigo de Eric Bidelman explica os conceitos básicos do SSE e também fornece alguns exemplos de código de servidor.
fonte
GCM / APNS são apenas para Chrome e Safari, respectivamente.
Eu acho que você pode estar procurando
Notification
:https://developer.mozilla.org/en-US/docs/Web/API/notification
Funciona no Chrome, Firefox, Opera e Safari .
fonte
Suponho que você esteja falando de notificações push reais que podem ser entregues mesmo quando o usuário não está navegando em seu site (caso contrário, consulte WebSockets ou métodos herdados, como pesquisas longas).
O GCM é apenas para Chrome e os APNs são apenas para Safari. Cada fabricante do navegador oferece seu próprio serviço.
A API Push requer dois back-ends ! Um é oferecido pelo fabricante do navegador e é responsável por entregar a notificação ao dispositivo. O outro deve ser seu (ou você pode usar um serviço de terceiros como o Pushpad ) e é responsável por acionar a notificação e entrar em contato com o serviço do fabricante do navegador (por exemplo, GCM, APNs, servidores de envio Mozilla ).
Divulgação: Eu sou o fundador do Pushpad
fonte
Esta é uma maneira simples de enviar notificações por push para todos os navegadores https://pushjs.org
fonte
Posso redefinir sua pergunta como abaixo
Sim. Até hoje (2017/05) , você pode usar a mesma implementação do lado do cliente e do servidor para lidar com o Chrome, Firefox e Opera (sem Safari). Porque eles implementaram as notificações por push da Web da mesma maneira. Esse é o protocolo Push API do W3C. Mas o Safari tem sua própria arquitetura antiga. Portanto, temos que manter o Safari separadamente.
Consulte o repositório de envio por push do navegador para obter linhas de guia para implementar a notificação por push da web para seu aplicativo da web com seu próprio backend. Ele explica com exemplos como você pode adicionar suporte à notificação por push da web para seu aplicativo da web sem serviços de terceiros.
fonte
A partir de agora, o GCM funciona apenas para Chrome e Android. Da mesma forma, o Firefox e outros navegadores têm sua própria API.
Agora, vamos à questão de como implementar a notificação por push para que ele funcione para todos os navegadores comuns com back-end próprio.
2. Após obter o endpoint usando o Ajax, salve-o juntamente com o nome do navegador.
3.Você precisa criar um back-end com campos para título, mensagem, ícone e clicar em URL conforme seus requisitos. Agora, depois de clicar em enviar notificação, chame uma função como send_push (). Neste código de gravação para diferentes navegadores, por exemplo
3.1 para cromo
3.2 para mozilla
para outros navegadores, pesquise no google ...
fonte
Eu sugiro usar o pubnub. No entanto, tentei usar o ServiceWorkers e o PushNotification no navegador, no entanto, quando tentei, as visualizações da Web não suportaram isso.
https://www.pubnub.com/docs/web-javascript/pubnub-javascript-sdk
fonte