Web push notifications no iOS e novidades do iOS 16.4

Finalmente estamos prestes a ter Web push notifications no iOS 16.4, a sua versão beta acabou de sair com essa tão esperada para criadores de Progressive web apps. O recurso cheguei a anunciar a um ano atrás, onde silenciosamente a Apple começava a testar o recurso.

vídeo sobre web push notifications no iOS

Mas agora ao tema principal do post, web push notifications já está ai na porta para ser lançado para iPhones e iPads, desde ano passado o recursos já esta disponível para MacOS, além deste recurso a versão 16.4 do iOS vem com 135 novos recursos a sua engine do webkit, incluindo:

  • Melhorias em expressões regulares
  • Import de maps
  • OffscreenCanvas
  • Media Queries Range syntax
  • @property
  • font-size-adjust
  • entre outros recursos

Outro item que agora tem suporte pela plataforma iOS é o uso do arquivo manifest, anteriormente a opção de inclusão de apps na home screen era feito através de meta tag adicionadas no head da aplicação. Agora precisamos manter num único local as informações de instalação do nosso PWAs.

Como irá funcionar o uso de web push notifications no iOS?

Na versão beta do iOS 16.4, o suporte para web push notification está para apps, que são adicionados na home screen. Então fique atento a essa condição com os seus usuários, além disso, você irá precisar recorrer ao service worker e das APIs, notifications API e Push API.

Um arquivo que foi adicionado na Home Screen poderá solicitar a permissão para receber notificações. Desde que essas solicitação seja feita através de uma interação direta do usuário,por exemplo, um clique num botão inscrever-se. Uma vez que a permissão é concedida o usuário pode gerenciar as permissões por aplicativo web em suas configurações.

As notificações de aplicação web irão funcionar da mesma forma que outros aplicativos. Irão aparecer no iOS na tela bloqueada e na central de notificações e até um apple watch sincronizado com o seu 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

Uma das preocupações da Apple recentemente é a questão de dar mais controle aos usuários sobre as notificações de apps, para evitar a sobrecarga dos usuários. Criado modo foco e trabalho onde o número de notificações são reduzidos. Assim como apps nativos, as notificações de web push notifications no iOS também passarão por esse filtro.

Badging API no iOS

Já presente em aplicações web e desktop, a partir da versão 16.4 a Badging API passará a ter suporte em dispositivos iOS, a API permite aplicativos web nos seus ícones na homescreen ter uma contagem de notificações com nos apps nativos. Para entender um pouco mais sobre badging API eu tenho um vídeo sobre no meu canal sobre o assunto.

vídeo sobre como implementar 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

Na versão 16.4 do iOS será possível que navegadores de terceiro, chrome e edge, por exemplo, tenham a possibilidade de permitir que os usuários adicionem atalhos para seus aplicativos web na homescreen. Para isso a aplicação deve conter as meta informações ou manifest.json configurado corretamente.

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

Para a instalação de progressive web apps precisamos definir os ícones das nossas aplicações, geralmente passamos diversas alternativas para diferentes telas. Caso as imagens não forem fornecidas o iOS irá criar um ícone com o screenshot da tela principal do seu site. Agora na versão do iOS 16.4 irá criar uma monograma usando a primeira letra do nome do seu site junto com a core predominante do site.

Para fornecer o ícone a ser usado no seu site ou aplicativo da web, adicione os ícones no seu arquivo manifest.json, os recursos está disponível para iOS desde a versão 15.4. Assim não sendo mais necessário a inclusão das tags de meta especiais para iOS. Mas para nível de fallback você pode incluir as meta tags caso tenho uma quantidade alta de usuários utilizando as versões anteriores a 15.4.

Outras novidades do 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.


Publicado

em

por

Tags:

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *