iOS 15.4 : les notifications arrivent enfin pour les applications web PWA
Ce n'est pas demain la veille que les web apps « avancées » (PWA pour Progressive Web Apps) pourront être confondues avec des applications natives. Mais comme l'ont démontré les services de streaming de jeux vidéo, il est possible de faire des choses tout à fait épatantes depuis Safari. Et cela va encore s'améliorer avec iOS 15.4 dont la liste de nouveautés ne cesse de s'allonger.
Côté utilisateurs, il y deux bonnes nouvelles. La première et sans doute la plus importante, c'est qu'Apple prépare le terrain pour les notifications provenant de PWA, une fonction réclamée à cor et à cri par les développeurs depuis toujours. Deux API sont présentes dans les fonctions expérimentales WebKit, pour le push et l'affichage des notifications, mais elles ne sont pas activées par défaut.
Comme le relève Maximiliano Firtman dans son exposé des nouveautés, il manque encore des bouts de code pour que les notifications soient fonctionnelles avec les web apps. Néanmoins, sur macOS la boîte de dialogue qui demande l'autorisation d'envoyer des notifications est fonctionnelle dans la dernière version de Safari TP (Safari pour les développeurs) :
Il faudra attendre qu'Apple termine les travaux pour que les PWA puissent finalement envoyer des notifications. L'autre changement est la meilleure prise en charge des icônes. Beaucoup de web apps doivent se contenter d'apparaitre sous la forme d'une icône standard sur l'écran d'accueil de l'iPhone, en raison d'un problème de prise en charge par Safari et WebKit de la déclaration de l'icône.
iOS 15.4 corrige enfin le tir, mais le processus n'est pas immédiat. Pendant quelques instants, l'icône qui apparait dans le panneau de partage de Safari n'est pas celle de la web app, la bonne version met un peu de temps avant d'apparaitre (voir la vidéo ci-dessous). Si on valide trop rapidement, on se retrouvera avec la mauvaise icône sur son iPhone.
Parmi les autres nouveautés en gestation, relevons le support de WebXR au travers de quatre expérimentations WebKit désactivées par défaut. WebXR est une API en cours de standardisation au sein du W3C qui permet de profiter d'expériences de réalité augmentée et virtuelle dans le navigateur. Des développeurs travaillent à son intégration dans WebKit depuis 2020.
L'API WebXR en cours d'implémentation dans WebKit
À tout cela s'ajoutent les nouveautés disponibles depuis iOS 15, entre autres la prise en charge de la couleur inscrite dans le manifeste de la web app (la barre de statut de la vue web prend cette couleur, sinon Safari détermine une couleur en fonction du contenu) ; les web apps peuvent proposer des Extraits d'apps (App Clips) que personne n'utilise ; les vues web peuvent enregistrer l'audio et la vidéo, gérer la lecture de contenus et démarrer/reprendre les téléchargements.
En revanche, les PWA ne sont toujours pas invitées à prendre place dans la page d'accueil de la Bibliothèque d'apps, bien qu'elles soient accessibles depuis le moteur de recherche de cet écran… et présentes aussi dans le simulateur iOS de Xcode, dans un dossier dédié.
Pour les développeurs et les utilisateurs intéressés, Maximiliano tient à jour une liste de compatibilité des fonctions supportées dans les PWA de Safari sur iOS et iPadOS.
J'ai installé le PWA d'Outlook dans une "app" Edge. Ça fonctionne très bien et c'est léger. Les ID/MDP sont embarqués avec l'app PWA : je me demande si le niveau de sécurité est aussi élevé qu'avec une app native. Car le frame reste quand même Edge... Quelqu'un a un avis là-dessus ?
Edge ou n'importe quel autre navigateur iOS, c'est WebKit donc le même moteur que Safari
mouais, du moment que je peux continuer à bloquer toutes ces notifications et bidules...
C'est quand même fou ce revirement, alors que Jobs avait à l'initiale l'intention de faire un magasin uniquement de webapps 😅
L'enfer ces trucs...
Qu’est-ce que ça stocke niveau données ? Elles ont un conteneur dédié ou ça passe à la trappe en vidant le cache de Safari ?
Ça utilise le local storage.
Et les notifications c’est juste le support du web push dans safari.
Il faut arrêter avec les néologismes « PWA » est juste une collection d’API JS.