Passer au contenu

API iOS Live Activities

Documentation Apple :

Pour permettre à un élément Live Activity de Customer Journey de construire son formulaire d’état de contenu à partir de noms de champs au lieu d’un éditeur JSON brut, publiez un schéma pour votre attributes-type — voir l’API des schémas de Live Activity.

startLiveActivity

Anchor link to

POST https://api.pushwoosh.com/json/1.3/startLiveActivity

Permet de créer des Live Activities iOS.

Corps de la requête

Anchor link to
ParamètreTypeRequis/OptionnelDescription
applicationStringRequisCode d’application Pushwoosh
authStringRequisJeton d’accès API depuis le Control Panel de Pushwoosh.
notificationsArrayRequisTableau JSON des paramètres de message. Voir les détails dans le tableau Notifications ci-dessous.

Notifications

Anchor link to

Paramètres utilisés dans le tableau notifications :

ParamètreTypeRequis/OptionnelDescription
contentStringRequis*Corps de l’alerte pour la notification push qui démarre la Live Activity, et le texte de repli affiché sur les appareils exécutant des versions d’iOS inférieures à 16.1.
titleStringRequis*Titre de l’alerte pour la notification push qui démarre la Live Activity.
live_activityObjectRequisDonnées de la Live Activity pour créer une Live Activity dans iOS.
live_activity.content-stateObjectRequisContenu pour la notification de la Live Activity.
live_activity.attributes-typeStringRequisLe type d’attributs utilisés dans la Live Activity.
live_activity.attributesObjectRequisAttributs pour la Live Activity.
live_activity_idStringRequisUn identifiant unique pour la Live Activity. Utilisé pour cibler cette activité lors de l’appel à updateLiveActivity. Doit être unique par session d’activité.
filterStringOptionnelLe nom d’un filtre (segment) Pushwoosh. Voir Nom du Segment / Filtre. La Live Activity sera démarrée sur tous les appareils correspondant à ce filtre.
devicesArray of StringsOptionnelUne liste de jetons d’appareil. La Live Activity ne sera démarrée que sur les appareils spécifiés.
send_dateStringOptionnelPlanifie la notification push qui démarre la Live Activity pour une date et une heure spécifiques — fonctionne avec le ciblage par filter ou devices. Utilisez le format AAAA-MM-JJ HH:mm, ou now pour démarrer immédiatement (c’est aussi la valeur par défaut lorsque le paramètre est omis). Ne doit pas être plus d’un jour dans le passé ou 30 jours dans le futur, sinon la requête est rejetée avec une erreur de validation.
timezoneStringOptionnelLe fuseau horaire utilisé pour interpréter send_date. S’il est omis, send_date est interprété en UTC.
apns_priorityIntegerOptionnelContrôle la priorité de livraison APNs pour cette notification push de Live Activity. Accepte 10 (haute priorité, livrée avec l’en-tête apns-priority: 10 pour un rendu instantané sur un écran verrouillé) ou 5 (basse priorité, livrée avec apns-priority: 5 pour économiser la batterie de l’appareil). Toute autre valeur est traitée comme 5, sans erreur de validation. Chaque notification push de Live Activity a par défaut une priorité de 5, qu’elle contienne ou non un contenu d’alerte (content/title) — définissez explicitement apns_priority: 10 pour demander une livraison à haute priorité. Voir Push sensible au temps et priorité de livraison ci-dessous.

Remarque : * Au moins l’un des champs content ou title doit être non vide. Pushwoosh rejette une demande de démarrage si les deux sont vides.

Exemple de requête

Anchor link to
{
"request": {
"application": "XXXXX-XXXXX",
"auth": "SECRET_API_TOKEN",
"notifications": [
{
"content": "Your order is being prepared",
"title": "Food Delivery",
"apns_priority": 10,
"live_activity": {
"event": "start",
"title": "Order status",
"content-state": {
"status": "Third",
"estimatedTime": "37 min",
"emoji": "👨‍🍳"
},
"attributes-type": "FoodDeliveryAttributes",
"attributes": {}
},
"live_activity_id": "FIRST_LIVE_ACTIVITY",
"filter": "FILTER_NAME_1"
}
]
}
}

Exemple de réponse

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"XXXXX-XXXXXXXX-XXXXXXXX"
]
}
}

Remarque :

Lisez cet article pour en savoir plus sur l’utilisation des Live Activities avec le SDK iOS de Pushwoosh.

updateLiveActivity

Anchor link to

POST https://api.pushwoosh.com/json/1.3/updateLiveActivity

Permet de mettre à jour et de terminer les Live Activities iOS.

Corps de la requête

Anchor link to
ParamètreTypeRequis/OptionnelDescription
authStringRequisJeton d’accès API depuis le Control Panel de Pushwoosh.
applicationStringRequisCode d’application Pushwoosh
notificationsArrayRequisTableau JSON des paramètres de message. Voir les détails dans le tableau Notifications ci-dessous.

Notifications

Anchor link to

Paramètres utilisés dans le tableau notifications :

ParamètreTypeRequis/OptionnelDescription
live_activityObjectRequisDonnées de la Live Activity pour mettre à jour la Live Activity dans iOS.
live_activity.eventStringRequisSpécifie le type d’événement. Utilisez "update" pour mettre à jour la Live Activity ou "end" pour la fermer.
live_activity.content-stateObjectRequisObjet avec des paires clé-valeur utilisé pour passer des données à la Live Activity pour mettre à jour son contenu.
live_activity.dismissal-dateIntegerOptionnelL’heure (en secondes) à laquelle la Live Activity doit se terminer. Pour un end, omettez ce champ pour que la carte continue d’afficher son dernier content-state jusqu’à ce qu’iOS la retire d’elle-même — voir la remarque ci-dessous. Indiquez une date dans le passé pour que la carte soit retirée dès l’arrivée de cette mise à jour.
live_activity_idStringRequisL’identifiant unique de la Live Activity à mettre à jour. Doit correspondre au live_activity_id utilisé dans startLiveActivity. La mise à jour sera livrée à tous les appareils sur lesquels cette activité a été démarrée.
live_activity.relevance-scoreIntegerOptionnelIndique au système iOS quelle Live Activity a une priorité plus élevée que les autres. Accepte des valeurs de 1 à l’infini (des valeurs jusqu’à 100 sont recommandées).
live_activity.stale-dateIntegerOptionnelL’heure (en secondes) qui représente la date à laquelle une Live Activity devient obsolète ou périmée.
apns_priorityIntegerOptionnelContrôle la priorité de livraison APNs pour cette notification push de Live Activity. Accepte 10 (haute priorité, livrée avec l’en-tête apns-priority: 10 pour un rendu instantané sur un écran verrouillé) ou 5 (basse priorité, livrée avec apns-priority: 5 pour économiser la batterie de l’appareil). Toute autre valeur est traitée comme 5, sans erreur de validation. Chaque notification push de Live Activity a par défaut une priorité de 5, qu’elle contienne ou non un contenu d’alerte (content/title) — définissez explicitement apns_priority: 10 pour demander une livraison à haute priorité. Voir Push sensible au temps et priorité de livraison ci-dessous.
contentStringOptionnelCorps de l’alerte pour cette mise à jour. Le cas courant est une mise à jour de l’état du contenu uniquement, qui ne définit aucun des champs content, title ou subtitle et ne contient aucune alerte.
titleStringOptionnelTitre de l’alerte pour cette mise à jour. Définir content, title ou subtitle déclenche une alerte et permet à ios_sound de jouer. Si aucun des trois n’est défini, la mise à jour reste silencieuse, ce qui est le comportement par défaut pour les mises à jour de l’état du contenu uniquement.
subtitleStringOptionnelSous-titre de l’alerte pour cette mise à jour. Même rôle de déclenchement d’alerte que content/title ci-dessus.
ios_soundStringOptionnelNom du fichier son dans le bundle principal de l’application. Il est inclus dans aps.alert avec content/title/subtitle, et non dans le aps.sound de niveau supérieur, qu’ActivityKit ignore pour les Live Activities, donc il ne joue que lorsque cette mise à jour définit également au moins l’un de ces trois. iOS limite également de son côté les alertes de Live Activity. Le même payload a été observé arrivant avec du son lors d’une livraison et sans lors de la suivante, à la fois sur l’appareil et sur le simulateur.

Remarque : relevance-score n’affecte que l’ordre d’affichage parmi plusieurs Live Activities actives sur le même appareil — il n’affecte pas l’urgence de la livraison. Utilisez apns_priority pour contrôler l’urgence avec laquelle une mise à jour est livrée.

Exemple de requête

Anchor link to
{
"request": {
"application": "XXXXX-XXXXX",
"auth": "SECRET_API_TOKEN",
"notifications": [
{
"apns_priority": 10,
"title": "Live Activity Update",
"live_activity": {
"event": "update",
"content-state": {
"status": "second 66",
"estimatedTime": "66 min",
"emoji": "👨‍"
},
"relevance-score": 60
},
"live_activity_id": "FIRST_LIVE_ACTIVITY"
}
]
}
}

Exemple de réponse

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"XXXXX-XXXXXXXX-XXXXXXXX"
]
}
}

Lisez cet article pour en savoir plus sur l’utilisation des Live Activities avec le SDK iOS de Pushwoosh.

Push sensible au temps et priorité de livraison

Anchor link to

Par défaut, Apple livre les mises à jour des Live Activities avec une faible priorité (apns-priority: 5) pour préserver la batterie. Lorsqu’un appareil est verrouillé, une mise à jour à faible priorité est traitée en arrière-plan et ne devient visible sur l’écran de verrouillage qu’une fois que l’utilisateur déverrouille l’appareil. Sur un appareil déjà déverrouillé, elle s’affiche toujours instantanément. Utilisez le paramètre apns_priority décrit ci-dessus pour demander une livraison à haute priorité (apns-priority: 10) afin que la mise à jour s’affiche immédiatement sur l’écran de verrouillage, sans déverrouillage.

Même avec apns_priority: 10 disponible, Apple limite la fréquence à laquelle il peut être utilisé.

Activités multiples par appareil

Anchor link to

Vous pouvez démarrer plusieurs Live Activities sur le même appareil en appelant startLiveActivity plusieurs fois avec des valeurs live_activity_id différentes.

Par exemple, si vous démarrez deux activités : FIRST_LIVE_ACTIVITY avec filter: FILTER_NAME_1 et SECOND_LIVE_ACTIVITY avec filter: FILTER_NAME_2, un appareil qui correspond aux deux filtres aura les deux activités en cours d’exécution simultanément.

Pour mettre à jour l’une d’entre elles, passez son live_activity_id à updateLiveActivity. La mise à jour est livrée à tous les appareils où cette activité a été créée. L’autre activité n’est pas affectée.

Le paramètre relevance-score contrôle la priorité d’affichage lorsque plusieurs Live Activities sont actives sur le même appareil. Si l’espace à l’écran est limité ou si les activités sont regroupées, l’activité avec une valeur plus élevée est affichée avec une priorité plus élevée.