As web push notifications no iOS estão disponíveis para aplicativos web adicionados à tela inicial desde o iOS e iPadOS 16.4. A permissão deve partir de uma ação do usuário, como tocar em “Inscrever-se”. Este artigo explica os requisitos e preserva o contexto do lançamento de 2023.
O suporte a Web Push chegou aos iPhones e iPads no iOS 16.4, em 2023. O anúncio do WebKit também apresentou outros recursos da versão, listados abaixo como contexto histórico:
- Melhorias em expressões regulares
- Import de maps
- OffscreenCanvas
- Media Queries Range syntax
- @property
- font-size-adjust
- entre outros recursos
Para solicitar o comportamento de aplicativo web, configure o manifest com display igual a standalone ou fullscreen. Isso diferencia o app instalado de um simples favorito na tela inicial, como explica o anúncio do WebKit.
Como funcionam as web push notifications no iOS?
No iOS e iPadOS 16.4 ou posterior, Web Push exige um aplicativo web adicionado à tela inicial. A implementação combina um service worker, a Notifications API e a Push API. A documentação da Apple detalha os requisitos do cliente e do servidor.
O aplicativo deve solicitar permissão após uma interação direta, como tocar em um botão. Depois da autorização, o usuário pode gerenciar as notificações nas configurações do sistema. Abrir o site em uma aba comum não substitui a instalação na tela inicial.
As notificações do aplicativo web aparecem na tela bloqueada e na central de notificações. Elas também podem aparecer em um Apple Watch sincronizado com o iPhone.
Web push no iOS utiliza o mesmo serviço de push notifications que ativa push em apps nativos, mas você não precisa ser um membro do apple developer program para utilizar o recurso. Apenas se certifique de permitir URLs de *.push.apple.com se você estiver no controle dos endpoints push do seu servidor. Muitas vezes não é preciso se preocupar com isso caso utilizar alguma plataforma de envio de push notifications.
Suporte ao recurso de foco do iOS
As notificações de aplicativos web respeitam o modo Foco do iOS. Por isso, uma permissão concedida não significa que todo aviso aparecerá imediatamente: o usuário pode limitar quando recebe notificações.
Badging API no iOS
Desde o iOS 16.4, aplicativos web na tela inicial podem usar a Badging API para mostrar uma contagem no ícone. Para entender a implementação, consulte o artigo sobre Badging API.
Para alterar as marcações dos ícones do seu app, trabalhamos com as funções setAppBadge e clearAppBadge para alterar a contagem de notificações.
A permissão para badging API é concedida da mesma forma em outras aplicações iOS nativas. Assim que um usuário der permissão para permitir notificações, o ícone na homescreen irá ativar a badging API.
Manifest ID
A engine do safari para iOS adiciona suporte para id member uma padronização do Web App Manifest. É uma string na forma de URL que atua como identificador exclusivo do aplicativo da Web, destinado a ser usado por um sistema operacional da maneira desejada. O manifest ID pode ser utilizado para sincronizar as configurações de Foco do iOS.
O iOS oferece suporte a várias instalações do mesmo aplicativo web desde as suas primeiras versões, muitas vezes com o intuito de permitir o uso de diferentes contas em uma mesma aplicação.
Adicionando um aplicativo web à tela inicial os usuários tem a oportunidade de alterar o nome da sua aplicação, assim o manifest ID é importante para identificação do aplicativo.
Suporte a homescreen para navegadores de terceiros
Desde o iOS 16.4, navegadores de terceiros também podem oferecer a opção de adicionar sites à tela inicial. O manifest ou os metadados do site definem se ele abre como aplicativo web ou como um favorito.
Se não houver nenhuma configuração o site será exibido como uma atalho para uma página web no Safari, ou no navegador padrão do usuário.
Novo ícone alternativo
Se o site não fornecer ícones, o iOS 16.4 e versões posteriores podem criar um monograma com a primeira letra do nome e uma cor do site. Antes dessa versão, o fallback usava uma captura da página.
Os ícones do manifest são suportados desde o iOS 15.4. Você também pode usar apple-touch-icon no head. Quando as duas opções estão presentes, apple-touch-icon tem prioridade, segundo o WebKit.
Outros recursos introduzidos no iOS 16.4
Além de suporte a web push notifications no iOS 16.4 também temos suporte as seguintes APIs:
- Screen Wake Lock API
- Screen Orientation API
- User Activation API
- Web codecs API
A plataforma iOS apresentou significativas melhorias nos últimos anos, muitos dos recursos que conseguimos implementar em progressive web apps você consegue conferir aqui no blog e em meu canal do youtube.
Deixe um comentário