Como um aplicativo da Web pode enviar notificações por push para dispositivos iOS? [fechadas]

121

Estou trabalhando em um aplicativo da web. Como posso enviar notificações por push para usuários do iOS quando há novo conteúdo?

Frankie
fonte
A que notificação agora?
Você está pesquisando com som? Então, se você deseja uma notificação sonora enquanto o celular está bloqueado; seu nome é Push específico.
Mrbengi

Respostas:

93

Para ser mais específico, para que um aplicativo Web envie notificações push para um dispositivo móvel, como o iPhone, o dispositivo móvel deve ter se registrado para receber notificações push para um aplicativo específico. O registro da notificação por push é feito por meio de um aplicativo nativo e só pode ser realizado por meio de um aplicativo nativo. Depois que o aplicativo nativo é registrado para notificação por push, ele pode enviar o token de autorização ao servidor, que pode ser usado em conjunto com o certificado usado para provisionar o cliente nativo, para enviar as notificações por push ao dispositivo móvel.

Conforme especificado em outra resposta, uma opção é 'agrupar' seu aplicativo Web em um aplicativo nativo. Isso significa que você criaria um aplicativo nativo que basicamente apresenta um UIWebView (para desenvolvedor do iPhone) ao usuário que mostra seu aplicativo da web. Embora isso funcione da mesma maneira que o navegador nativo, você poderá adicionar a capacidade de registrar notificações por push usando os controles nativos.

Seria benéfico para você revisar o documento de notificação por push da Apple, pois fornece algumas informações muito boas sobre como as mensagens por push funcionam no iPhone.

Veja os links fornecidos por Peter Hosey:

Kris Babic
fonte
Obrigado por esta resposta, eu estava procurando o mesmo. Isso também se aplica quando você adiciona uma meta tag 'apple-mobile-web-app-enabled'?
Mark Knol
1
Isso está mudando a forma como as notificações por push acontecem developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn
1
a partir de 02/2016, o FF, o Chrome e o Safari podem se registrar para receber push do webapp.
Yvon Huynh
9
Isso não é mais verdade em 2016, você pode enviar notificações de aplicativos da web. Leia minha resposta abaixo.
Collimarco 14/05
Mas o webview não está funcionando muito bem, ele perde algumas características e tem mais bugs do que o Safari
preto
46

Não, apenas aplicativos nativos do iOS suportam notificações por push.

ATUALIZAÇÃO:
os sites Mac OS X 10.9 e Safari 7 agora também podem enviar notificações por push, mas isso ainda não se aplica ao iOS. Leia o Guia de programação de notificações para sites . Verifique também a Sessão 614 da WWDC 2013 .

Felix
fonte
1
agora você pode no Maverix & Safari 7!
themihai
O Safari 7 com certeza pode receber essas notificações por push e, dependendo do back-end que seu aplicativo Web está executando, existem alguns serviços que permitem isso: pushwoosh.com , pushmonkey.launchrock.com ou você pode implantar seu próprio servidor, que é muito semelhante a notificações por push do iOS.
Tudor
Ouvi dizer que isso é chamado de envio específico.
Mrbengi
3
A pergunta do OP é especificamente sobre o iOS. O suporte ao OSX / macOS é bom, mas as notificações por push ainda funcionam no iOS a partir de um aplicativo nativo.
Squarecandy
44

Embora ainda não seja suportado no iOS (a partir do iOS 10), os sites podem enviar notificações push para o Firefox e Chrome (Desktop / Android) com a API Push .

A API Push é usada em conjunto com as Notificações da Web mais antigas para exibir a mensagem. A vantagem é que a API Push permite que a notificação seja entregue mesmo quando o usuário não está navegando em seu site, porque eles são criados em Service Workers (scripts que são registrados pelo navegador e podem ser executados em segundo plano posteriormente, mesmo depois seu usuário saiu do seu site).

O processo de envio de uma notificação envolve o seguinte:

  1. um usuário visita seu site (deve ser protegido por HTTPS): você solicita permissão para exibir notificações push e registra um trabalhador de serviço (um script que será executado quando uma notificação push for recebida)
  2. se o usuário tiver concedido permissão, você poderá ler o token do dispositivo (terminal) que deve ser enviado ao servidor e armazenado
  3. agora você pode enviar notificações para o usuário: seu servidor faz uma solicitação HTTP POST para o terminal (que é um URL que contém o token do dispositivo). O servidor que recebe a solicitação pertence ao fabricante do navegador (por exemplo, Google, Mozilla): o navegador está constantemente conectado a ele e pode ler as notificações recebidas.
  4. quando o navegador do usuário recebe uma notificação, o responsável pelo serviço é responsável pelo gerenciamento do evento, recuperando os dados da notificação do servidor e exibindo a notificação ao usuário

Atualmente, a API Push é compatível com computadores e Android no Chrome , Firefox e Opera .

Você também pode enviar notificações push para a Apple / Safari área de trabalho usando APNs. A abordagem é semelhante, mas com muitas complicações (certificados de desenvolvedor da apple, pacotes push, conexão TCP de baixo nível aos APNs).

Se você deseja implementar as notificações por conta própria, comece com estes tutoriais:

Se você está procurando uma queda na solução, sugiro o Pushpad , que é um serviço que eu criei .

Atualização (setembro de 2017): A Apple começou a desenvolver os trabalhadores do serviço para WebKit ( status ). Como os funcionários do serviço são uma tecnologia fundamental para o envio pela Web, esse é um grande passo à frente.

collimarco
fonte
3
No iOS 10 (beta público), o Mobile Safari não suporta notificações por push.
Robin Daugherty
1
Não foi uma correção da sua resposta, eu estava fornecendo informações para pessoas que procuravam o suporte do Safari Mobile. Algum dia, talvez eles sejam compatíveis com notificações por push, mas não com o lançamento que mencionei.
22816 Robin Daugherty
14
O Safari é o novo Internet Explorer. Apple é a nova Microsoft. Ugh ...
Costa
1
@Kevincore Não, infelizmente não há atualizações. No momento, o Safari no iOS não oferece suporte ao envio pela web (maio de 2017).
Collimarco 19/05
1
Vamos pressionar a Apple: escrevi alguns parágrafos que você pode copiar e enviar ao Apple Bug Tracker para solicitar à Apple que adicione web push ao iOS.
collimarco
10

O Google Chrome agora suporta o padrão W3C para notificações por push.

http://www.w3.org/TR/push-api/

BonzaiThePenguin
fonte
Aqui está um tutorial completo: developers.google.com/web/updates/2015/03/…
ayke
1
Isso inclui o Chrome para iOS? (A pergunta original era específico para iOS)
Simon Médio
Ainda não há iOS em nada. Tem que usar um aplicativo nativo: \
rogerdpack 24/11
9

REALMENTE .. Isso é novo em sua mente. Na versão mais recente do OS X (Mavericks), você PODE enviar notificações por push de uma página da Web para a área de trabalho. Mas de acordo com a documentação, NÃO iPhones:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

Atualmente, a Apple planeja permitir dois tipos de notificações por push: notificações por push do site do OS X e notificações locais.

O obstáculo óbvio aqui é que isso não funcionará em PCs, nem permitirá que você faça notificações por push no Android.

Além disso, você pode, com versões tão antigas quanto o Snow Leapord, enviar notificações push de um site, desde que o site esteja aberto e ativo. O novo sistema operacional Mavericks permitirá notificações por push, mesmo que o site não esteja aberto, assumindo que você já tenha dado permissão ao site para enviar notificações por push.

Da boca da Apple:

No OS X v10.9 e posterior, você pode enviar as notificações por push do site do OS X diretamente do servidor da Web para os usuários do OS X usando o serviço de notificação por push da Apple (APNs). Para não confundir com as notificações locais, as notificações por push podem alcançar seus usuários, independentemente de seu site ou seu navegador estar aberto…

Para integrar notificações push em seu site, você primeiro apresenta uma interface que permite ao usuário optar por receber notificações. Se o usuário consentir, o Safari entra em contato com o site solicitando suas credenciais na forma de um arquivo chamado pacote push. O pacote push também contém ativos de notificação usados ​​no OS X e dados usados ​​para se comunicar com um serviço da Web que você configura. Se o pacote push for válido, você receberá um identificador exclusivo para o usuário no dispositivo, conhecido como token do dispositivo. O usuário recebe a notificação quando você envia a combinação deste token do dispositivo e sua mensagem ou carga útil para os APNs.

Ao receber a notificação, o usuário pode clicar nela para abrir uma página de sua escolha no navegador padrão do usuário.

Nota: Se você precisar de uma atualização nos APNs, leia o capítulo “Apple Push Notification Service” no Local e no Push Notification Programming Guide. Embora o documento seja específico das notificações por push do iOS e do OS X, os paradigmas do serviço de notificação por push ainda se aplicam.

Jonathan Nemeth
fonte
5
Esperamos que isso signifique que veremos notificações por push na Web pelo iOS 8 ou 9. Mantendo meus dedos cruzados.
Travis
5
Os documentos do desenvolvedor dizem explicitamente que as notificações da Web não se aplicam ao iOS atualmente. Apenas como um esclarecimento do seu primeiro parágrafo.
Daniel Sellers
1
Conhecendo a apple, eles permitirão uma versão do iOS e a removerão para a próxima #
Alexander Derck 15/11/16
7

Não, não há como um aplicativo da web receber notificações por push. O que você pode fazer é agrupar seu aplicativo da web em um aplicativo nativo que possui notificações por push.

JustSid
fonte
o que você quer dizer quando diz "agrupar seu aplicativo da web em um aplicativo nativo"?
9187 Frankie
1
Frankie: Bem, apenas um aplicativo nativo que exibe um UIWebView que carrega seu site. Isso permite que você tenha seu aplicativo da web como aplicativo nativo no telefone.
JustSid 9/02/11
então eu acho que no xcode isso seria "WindowBase Aplication" para aplicativo nativo, certo?
31568 Frankie (
agora você pode no Maverix & Safari 7!
themihai
1
@DanDascalescu Por que eu faria? Ainda não é possível no iOS, que era a questão. A resposta não está incorreta.
JustSid 21/07
2

O W3C iniciou em 2010 um grupo de trabalho para implementar notificações:
http://www.w3.org/2010/web-notifications/

Este grupo de trabalho desenvolve APIs que expõem esses mecanismos a aplicativos da Web - para que desenvolvedores da Web que criam, por exemplo, clientes de email baseados na Web e clientes de mensagens instantâneas possam integrar mais estreitamente o comportamento de seus aplicativos da Web aos recursos de notificação dos sistemas operacionais. de seus usuários finais.

Finalmente, o resultado é uma piada de mau gosto, pois só funciona se o site específico estiver aberto: http://alxgbsn.co.uk/notify.js/

Acho que eles não implementaram a possibilidade de adicionar URLs push, para que o navegador possa solicitar notificações enquanto está sendo executado em segundo plano - e acima de tudo - se todas as guias tiverem sido fechadas.

mgutt
fonte
2

Você pode usar os Websockets HTML5 para apresentar suas próprias mensagens push. Da Wikipedia :

"Para o cliente, o WebSocket deveria ser implementado no Firefox 4, Google Chrome 4, Opera 11 e Safari 5, além da versão móvel do Safari no iOS 4.2. Além disso, o BlackBerry Browser no OS7 suporta WebSockets".

Para fazer isso, você precisa do seu próprio servidor de provedor para enviar as mensagens aos clientes.
Se você deseja usar o APN (Apple Push Notification) ou o C2DM (Cloud to Device Message), é necessário ter um aplicativo nativo que deve ser baixado na loja online.

Foyzul Karim
fonte
6
bem, só funcionaria se o navegador estivesse aberto e na página do aplicativo da web. ao contrário das notificações por push, que funcionam mesmo quando a aplicação está desativada.
Hagai L
2

Pushbullet é uma ótima alternativa para isso.

No entanto, o usuário precisa ter uma conta Pushbullet e o aplicativo instalado (iOS, Android) ou plugin instalado (Chrome, Opera, Firefox e Windows).

Você pode usar a API criando um aplicativo Pushbullet e conectar o usuário do aplicativo ao usuário Pushbullet usando oAuth2.

Usar uma biblioteca tornaria muito mais fácil, para o PHP eu poderia recomendar ivkos / Pushbullet-for-PHP .

Tim
fonte
1

Confira as notificações por push do Xtify Web. http://getreactor.xtify.com/ Essa ferramenta permite enviar conteúdo para uma página da Web e direcionar visitantes, além de acionar mensagens com base nos eventos DOM do navegador. Ele foi projetado especificamente para dispositivos móveis.

Jeremy
fonte