Development #79052
Fonctionnement des notifications sur IOS
0%
Description
Suite à #76250, le demande est de faire fonctionner les notifications sur IOS.
Demandes liées
Historique
Mis à jour par Benjamin Dauvergne il y a 5 mois
- Lié à Development #70987: pwa: utiliser correctement pywebpush ajouté
Mis à jour par Benjamin Dauvergne il y a 5 mois
- Lié à Development #70988: pwa: utiliser un ttl différent de 0 ajouté
Mis à jour par Olivier Renard il y a 4 mois
Test fait ce jour sur ios 17.1.2.
Les notifications de la PWA sont bien activées, mais il n'y a pas de notification recue.
Cela confirme #76250-2
Mis à jour par Benjamin Dauvergne il y a 4 mois
Les recommandations par Apple (https://developer.apple.com/documentation/usernotifications/sending_web_push_notifications_in_web_apps_and_browsers) correspondent en partie aux tickets que j'ai ouvert :
Send your notification request to the recipient’s endpoint Prepare your push notification request according to the specification. Then send the notification request over HTTP/1.1 or HTTP/2 to the endpoint you stored from the recipient’s push registration. The push notification service supports HTTP pipelining for HTTP/1.1. Don’t send more than 100 unacknowledged push requests over the connection. There’s a limit of concurrent streams for HTTP/2. Don’t make assumptions about the number of concurrent streams allowed; instead, don’t exceed the SETTINGS_MAX_CONCURRENT_STREAMS value in the HTTP/2 SETTINGS frame. Include the standard headers with your push notification request: TTL The number of seconds before your message expires. If the push service can’t deliver a notification immediately, it may store the notification for 30 days or fewer, depending on the value you specify. The push service attempts to deliver the notification the next time the device activates and is available online. If the push service can’t deliver the notification, the push service removes the notification from storage permanently. The number of notifications the push services stores while the device is offline is limited.
C'est #70988.
Authorization The VAPID JSON web token (JWT) and public key.The public key you include must match the public key you provided to PushManager.subscribe. Don’t refresh your JWT more frequently than once per hour.
C'est #70987.
Content-Encoding The name of the encryption method you used to encrypt the payload. If the payload is empty, you may omit this header
Ça c'est déjà géré par pywebpush, mais le fait d'utiliser le chiffrement aes128gcm qui est celui préconisé par la RFC est peut-être mieux.
Topic Optional identifier that the push service uses to coalesce notifications. Use a maximum of 32 characters from the URL or filename-safe Base64 characters sets.
On n'utilise pas. (PS: ça sert à remplacer un message déjà envoyé, https://autopush.readthedocs.io/en/latest/http.html#topic, ex.: "Demande xyz reçue." -> "Demande xyz en cours de traitement")
Urgency Indication of whether to send the notification immediately or prioritize the recipient’s device power considerations for delivery. Provide one of the following values: very-low, low, normal, or high. To attempt to deliver the notification immediately, specify high.
On n'utilise pas, mais à lire https://datatracker.ietf.org/doc/html/rfc8030#section-5.3 on devrait mettre "low" je pense.
Mis à jour par Benjamin Dauvergne il y a 4 mois
Olivier Renard a écrit :
Test fait ce jour sur ios 17.1.2.
Les notifications de la PWA sont bien activées, mais il n'y a pas de notification recue.
Cela confirme #76250-2
Je ne trouve pas d'erreur lié à ton essai (https://sentry.entrouvert.org/entrouvert/publik/?query=is%3Aunresolved+webpush) est-ce que tu peux me dire sur quelle instance tu as fait ton test et avec quel compte ?
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Statut changé de Nouveau à Information nécessaire
- Assigné à mis à Olivier Renard
Mis à jour par Olivier Renard il y a 4 mois
- Assigné à changé de Olivier Renard à Benjamin Dauvergne
Test fait sur https://portail-orenard.test.entrouvert.org/notifications/, avec la démarche https://demarches-orenard.test.entrouvert.org/tests/test-fonction-pwa/
Je n'ai pas d'erreur, mais je n'ai pas de notification sur ma version d'ios.
J'ai fait le test avec le compte orenard@entrouvert.com
Mis à jour par Benjamin Dauvergne il y a 4 mois
Olivier Renard a écrit :
Test fait sur https://portail-orenard.test.entrouvert.org/notifications/, avec la démarche https://demarches-orenard.test.entrouvert.org/tests/test-fonction-pwa/
Je n'ai pas d'erreur, mais je n'ai pas de notification sur ma version d'ios.
Tu n'auras jamais d'erreur "visible" tout part dans les logs ou les notifications sont simplement abandonnées par le serveur de push (Apple ou Google), mais je veux voir au niveau des logs si jamais il y a des erreurs visibles.
Mis à jour par Benjamin Dauvergne il y a 4 mois
Il n'y a aucune inscription WebPush sur portail-orenard vers un serveur d'Apple, uniquement pour Firefox. L'autorisation de webpush n'a pas du marcher.
In [6]: PushSubscription.objects.get().user Out[6]: <User: Olivier Renard> In [7]: PushSubscription.objects.get().subscription_info['endpoint'] Out[7]: 'https://updates.push.services.mozilla.com/wpush/v2/xxxxxxx'
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Assigné à changé de Benjamin Dauvergne à Olivier Renard
Est tu bien en iOS 16.4 (PS: effectivement ça marche en PWA depuis 16.4 beta 1) ? PS: utilises-tu bien Safari ? As-tu bien ajouté la PWA à ton écran d'accueil ? As-tu donné l'autorisation webpush depuis l'application lancé depuis l'écran d'accueil (donc installer, sortir de safari, réouvrir le site depuis l'icône) ?
Mis à jour par Olivier Renard il y a 4 mois
- Assigné à changé de Olivier Renard à Benjamin Dauvergne
ios 17.1.2
oui j'ai utilisé safari pour ajouter à l'écran d'accueil (sinon pas possible)
oui la pwa est bien ajoutée à l'écran d'accueil
oui, les notifications sont activées depuis l'écran d'accueil (mais je ne vois plus le bouton désactiver pour l'instant)
oui, l'envoi de notification est activé dans les reglages ios
oui, je reouvre bien le site depuis l'icone
Je vais tout refaire, et te tiens au courant (demain)
je cherche.
Mis à jour par Benjamin Dauvergne il y a 4 mois
Olivier Renard a écrit :
oui, les notifications sont activées depuis l'écran d'accueil (mais je ne vois plus le bouton désactiver pour l'instant)
De ce coté on a peut-être un souci d'incohérence entre l'état du navigateur et celui de combo, possible que ce soit activé dans le navigateur mais que combo n'ait pas conservé l'enregistrement, si on trouve que les notifications sont activés, il faut tenter de repousser ça vers combo dès que possible ou au moins comparer avec l'état connu.
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Lié à Development #85458: pwa: l'état des souscriptions aux notifications webpush peut-être désynchronisé entre combo et le navigateur ajouté
Mis à jour par Olivier Renard il y a 4 mois
- ouverture de https://portail-orenard.test.entrouvert.org/notifications/ sur safari
- ajout sur l'écran d'accueil
- ouverture depuis l'icone sur l'écran d'accueil de https://portail-orenard.test.entrouvert.org/notifications/
- authentification
- clique sur 'Activer les notifications' sur https://portail-orenard.test.entrouvert.org/notifications/, puis "autoriser"
- dans les réglages de notifications de ios, verification que les notifications sont bien activées pour la pwa
- ouverture depuis l'icone sur l'ecran d'accueil, et envoie d'une notification avec https://demarches-orenard.test.entrouvert.org/test-fonction-pwa/
La notification est recue sur firefox
Il n'y a pas de notification sur ios.
Mis à jour par Benjamin Dauvergne il y a 4 mois
Là j'ai une belle erreur https://sentry.entrouvert.org/entrouvert/publik/issues/108494/?query=is%3Aunresolved
10:06:22 httplib POST https://web.push.apple.com/QDMo3psX2nJAP4SZnFxs-5cvoORCd7WMR1JxKpzesWDlKTYOwrD3txQlPXTrRc6dChv1rmsr2mItxnLrYEWJsFOxbW9o1OzmcHntLp15iYoR6-3M3EdV0h2YGRdJdzW7yJyMrr5cJkiv9iMOOcIx7jq1K05fDp0fUSWHA0ldlPs [403] reason Forbidden
On peut penser que ce sont les versions obsolète de pywebpush&etc qui posent problème.
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Statut changé de Information nécessaire à En cours
Mis à jour par Benjamin Dauvergne il y a 2 mois
- Statut changé de En cours à Solution déployée
- Assigné à changé de Benjamin Dauvergne à Olivier Renard
À retester avec le code actuellement en recette.
Mis à jour par Olivier Renard il y a 2 mois
- Assigné à changé de Olivier Renard à Benjamin Dauvergne
Test ko, fait sur ios 17.2.1 sur https://demarches-orenard.test.entrouvert.org/tests/test-fonction-pwa/.
Je n'ai pas de notifications.
Je recois bien la notification sur Firefox.
- la pwa est installée
- les notifications sont activées à partir de https://portail-orenard.test.entrouvert.org/notifications/
- dans les réglages les notifications sont bien activés pour la pwa.
Mis à jour par Benjamin Dauvergne il y a 2 mois
Ouaip c'est pas mieux : https://sentry.entrouvert.org/entrouvert/publik/issues/122574/
'403 Client Error: Forbidden for url: https://web.push.apple.com/QOMQ5KnQ293xnSnL6qJjgckvy1amJsZCXuiQOpdMa7sEi1HhUIkaycgJCWdcoYaXaalnXE1khhl45RFgoOfp6LljAHkAqUgpKn5JwY_A-T94qBn3W-LV8kIDxcyJQiy4vvXh_0rUQrhiK9R54uvlm_2kDSTdkv6kg13ZpFmcOIM'
PS: avec le contenu de la réponse
(Pdb) p response.content b'{"reason":"BadJwtToken"}'
Mis à jour par Benjamin Dauvergne il y a 2 mois
Ok c'est le mailto du JWT qui n'est pas bon:
b'{"aud":"https://web.push.apple.com","exp":1708776410,"sub":"mailto:\\"PublikOR\\" <noreply+publik.test.orenard@entrouvert.com>"}'
https://forums.developer.apple.com/forums/thread/725473
Mis à jour par Benjamin Dauvergne il y a 2 mois
- Lié à Development #87413: pwa: utiliser le domaine du tenant pour le sub du jeton JWT/VAPID ajouté
Mis à jour par Benjamin Dauvergne il y a 2 mois
Olivier Renard a écrit :
Test ko, fait sur ios 17.2.1 sur https://demarches-orenard.test.entrouvert.org/tests/test-fonction-pwa/.
Je n'ai pas de notifications.
Il manquait encore un détail, ça doit être corrigé maintenant.
Mis à jour par Benjamin Dauvergne il y a 2 mois
- Statut changé de En cours à Solution proposée
- Assigné à changé de Benjamin Dauvergne à Olivier Renard
Mis à jour par Benjamin Dauvergne il y a 2 mois
- Statut changé de Solution proposée à Solution déployée
Mis à jour par Olivier Renard il y a 2 mois
Je recois effectivement des notifications sur ios.
(Dans l'après midi ce n'était pas instantané, je ne sais pas pourquoi.)
A cette heure, les notifications sont instantanées, ca fonctionne, c'est top.
Les notifications ios fonctionnent à ce jour.
merci bon boulot!