
Image montrant les boutons d'action dans iOS
Ce guide s’applique uniquement aux notifications push. Pour les messages in-app, consultez Messages In-App : Comment ajouter des actions de clic.
Ajouter des boutons d’action
Vous pouvez configurer les boutons d’action dans les Modèles, directement lors de la composition d’un message dans le tableau de bord, ou via l’API.Configuration du tableau de bord et des modèles
Lors de la création d’un push, ouvrez Options avancées > Boutons d’action.
Image montrant les boutons d'action à ajouter pour iOS et Android
Configuration de l’API
- Applications mobiles : Utilisez le paramètre
buttons. Passez un tableau de jusqu’à 3 objets avecid,texteticon. - Web (Chrome) : Utilisez
web_buttons, en passant jusqu’à 2 objets avecid,text,iconeturl.
Propriétés des boutons d’action
-
ID d’action : Un identifiant unique pour l’action spécifique du bouton. L’ID du bouton cliqué vous est transmis afin que vous puissiez identifier quel bouton a été cliqué. (par exemple ‘accept-button’)
- Doit être unique par bouton.
- Disponible dans le payload OSNotification et peut être consulté dans le gestionnaire d’événements d’ouverture de notification du SDK.
- API : propriété
id
-
Libellé : Le texte que le bouton doit afficher à vos utilisateurs. (par exemple ‘Accepter’)
- API : propriété
text
- API : propriété
-
Icône : Icône optionnelle affichée avec le libellé du bouton. Non disponible sur toutes les plateformes et systèmes d’exploitation. Voir la FAQ ci-dessous pour plus de détails.
- Les applications mobiles doivent inclure le bouton dans leurs ressources d’images. Voir Icônes des boutons d’action ci-dessous pour plus de détails.
- Les sites web peuvent utiliser une URL publiquement accessible valide vers une icône. Gardez-la petite car elle est téléchargée à chaque affichage de notification. (par exemple
http://site.com/icon.png) - API : propriété
icon
-
URL du bouton : L’URL à ouvrir lorsque la notification est cliquée. Passez
'do_not_open'pour empêcher l’ouverture de toute URL. (par exemple ‘do_not_open’)- Web uniquement
- API : propriété
url
Icônes des boutons d’action
- iOS prend en charge les icônes de boutons d’action pour iOS 15+
- Android a cessé de prendre en charge les icônes de boutons d’action pour Android N (alias 7)
Gérer les clics sur les boutons d’action
Lorsqu’un utilisateur appuie sur un bouton, OneSignal transmet l’ID d’action à votre application/site. Vous pouvez soit utiliser le comportement par défaut (ouvrir votre application/site) soit le remplacer.Comportement par défaut (Ouvrir l’application/site, puis gérer)
- L’application/site s’ouvre (ou est focalisé sur le web).
- Votre écouteur de clic/ouverture reçoit l’événement avec l’ID d’action. (Voir référence du SDK mobile ou référence du SDK web pour les détails de l’écouteur de clic.)
Empêcher le lancement de l’application depuis les clics sur les boutons d’action
- Android : Suivez Configuration du SDK Android > Désactiver le comportement d’ouverture par défaut. Cela vous permet d’intercepter les clics dans une Extension de service et d’exécuter une logique personnalisée (par exemple appeler une API) sans ouvrir l’application.
- iOS : Incluez une
ios_categorysur la notification pour associer les actions via l’objet UNNotificationCategory. Voir Declaring Your Actionable Notification Types d’Apple pour plus de détails. - Web (Chrome) : Utilisez la chaîne magique
_osp=do_not_openpour empêcher l’ouverture de toute URL. Ceci est pris en charge sur Chrome et Firefox, mais pas pris en charge pour le navigateur web Safari.
Plateformes prises en charge et limites
| Plateforme | Boutons pris en charge | Notes |
|---|---|---|
| iOS | Jusqu’à 4 | Icônes sur iOS 15+. Nécessite des catégories pour la gestion en arrière-plan. |
| Android / Amazon / Huawei | Jusqu’à 3 | Pas d’icônes de boutons à partir d’Android 7+. |
| Web – Chrome | Jusqu’à 2 | Boutons et icônes pris en charge. _osp=do_not_open pris en charge. |
| Web – Firefox | Pas de boutons | _osp=do_not_open fonctionne uniquement pour l’URL de lancement. |
| Web – Safari | Pas de boutons | _osp=do_not_open non pris en charge. Fournissez une vraie URL. |
Les utilisateurs doivent souvent développer la notification pour voir les boutons (par exemple, appui long sur iOS, balayage + Afficher sur certains OEM Android).
Dépannage
Les boutons ne s’affichent pas
- Développez la notification (appui long, balayage + Afficher, ou développer).
- Vérifiez que vous avez ajouté l’ID d’action et le libellé pour chaque bouton.
- Vérifiez les limites de la plateforme (par exemple, seulement 2 boutons sur Chrome).
Cliquer sur un bouton n’ouvre pas le navigateur sur le web mobile
Si le navigateur est en arrière-plan ou complètement fermé, la plupart des navigateurs mobiles (y compris Chrome) ne passeront pas au premier plan ni n’ouvriront l’URL, même si les événements de clic se déclenchent toujours dans le service worker. Il s’agit d’un comportement intentionnel du navigateur pour empêcher les applications en arrière-plan d’interrompre l’utilisateur.- La plupart des navigateurs mobiles ne se mettront pas au premier plan depuis un service worker en arrière-plan. Les clics se déclenchent toujours dans le worker, mais l’onglet ne s’ouvre pas. C’est intentionnel.
- Assurez-vous que l’URL de lancement et l’URL du bouton sont exactement identiques (y compris les barres obliques finales) si vous vous attendez à ce que l’onglet soit focalisé au lieu d’en ouvrir un nouveau.
Les icônes n’apparaissent pas
- iOS doit être 15+ pour les icônes de boutons.
- Android 7+ n’affiche pas les icônes de boutons d’action.
- Sur le web, confirmez que l’URL de l’icône est publiquement accessible et petite (rapide à télécharger).
Pourquoi y a-t-il un bouton d’action de fermeture ?
Par défaut, les notifications push web sur Windows 10 incluent le bouton Fermer. Cependant, si vous ajoutez votre propre bouton d’action, ce bouton de fermeture est supprimé. Ainsi, dans les deux cas, la notification restera à l’écran jusqu’à ce que l’utilisateur interagisse avec elle. Ceci est conçu par Google pour donner aux utilisateurs la possibilité d’interagir avec la notification.Besoin d’aide ?Discutez avec notre équipe d’assistance ou envoyez un e-mail à
support@onesignal.comVeuillez inclure :- Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
- Votre OneSignal App ID
- L’External ID ou le Subscription ID le cas échéant
- L’URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
- Tous les journaux ou messages d’erreur pertinents