Activer les notifications Push dans votre application de conversation

Ce tutoriel vous guidera pour activer la notification Push dans votre application IOS à l’aide du Kit de développement logiciel (SDK) Azure Communication Chat.
Les notifications push alertent les clients des messages entrants dans un fil de discussion dans les situations où l'application mobile ne s'exécute pas au premier plan. Azure Communication Services prend en charge deux versions de notifications Push.

  • Basic Version : l’utilisateur pourra voir un badge de 1 sur l’icône de l’application, recevoir un son de notification et voir une bannière d’alerte contextuelle.

  • Advanced Version: à l’exception des fonctionnalités prises en charge dans la version de base, Contoso sera en mesure de personnaliser la section titre et aperçu des messages dans la bannière d’alerte.

    Screenshot of basic version of push notification.

    [Version de base]

    Screenshot of advanced version of push notification.

    [Version avancée]

Télécharger le code

Accédez à l’exemple de code pour ce tutoriel sur GitHub.

Prérequis

  1. Terminer toutes les étapes requises dans le guide de démarrage rapide conversation

  2. Configuration d’ANH
    Créez un hub de notification Azure dans le même abonnement que votre ressource Communication Services et liez le hub de notification à votre ressource Communication Services. Consultez Provisionnement des hubs de notification.

  3. Configuration du certificat APNS
    Ici, nous vous recommandons de créer un certificat APNS .p12 et de le définir dans le hub de notification.

    If you are not a Microsoft internal client, veuillez exécuter les étapes 1 à 9.
    If you are a Microsoft internal client, envoyez un ticket ici et fournissez l’ID de bundle de votre application pour obtenir un certificat .p12. Une fois que vous avez obtenu un certificat valide émis, effectuez l’étape 9.

  • Étape 1 : Connectez-vous au portail des développeurs Apple. Accédez à Certificates, IDs & Profiles > Identifiers > App IDs et cliquez sur l’ID d’application associé à votre application.

    Screenshot of APNS Cert Configuration step 1.
  • Étape 2 : Sur l’écran de votre ID d’application, cochez Capabilities > Push Notifications. Cliquez sur Enregistrer et répondre à « Confirmer » dans la boîte de dialogue Modifier les fonctionnalités de l’application qui s’affiche.

    Screenshot of APNS Cert Configuration step 2-1.Screenshot of APNS Cert Configuration step 2-2.
  • Étape 3 : Dans la même page, cliquez sur Capabilities > Push Notifications > Configure. Cliquez sur l'un des boutons suivants :

    • Certificat SSL de développement > Créer un certificat (pour tester les notifications Push lors du développement d’une application iOS)
    • Certificat SSL de production > Créer un certificat (pour l’envoi de notifications Push lors de la production)
    Screenshot of APNS Cert Configuration step 3.
  • Étape 4 : Vous accédez ensuite à la page ci-dessous. Ici, vous allez charger une demande de signature de certificat (CSR). Suivez l’étape suivante pour créer une demande de signature de certificat.

    Screenshot of APNS Cert Configuration step 4.
  • Étape 5 : Dans un nouvel onglet de navigateur, suivez cette page d’aide pour créer une demande de signature de certificat et enregistrer le fichier en tant que « Nom de l’application.cer ».

    Screenshot of APNS Cert Configuration step 5 - 1.Screenshot of APNS Cert Configuration step 5 - 2.
  • Étape 6 : Faites glisser le fichier .cer vers la zone « Choisir un fichier ». Appuyez ensuite sur « Continuer » dans le coin supérieur droit.

    Screenshot of APNS Cert Configuration step 6.
  • Étape 7 : Cliquez sur « Télécharger » et enregistrez le fichier sur le disque local.

    Screenshot of APNS Cert Configuration step 7.
  • Étape 8 : Ouvrez le fichier .cer que vous avez téléchargé ; il ouvre l’accès au trousseau. Sélectionnez votre certificat, cliquez avec le bouton droit et exportez votre certificat au format .p12.

    Screenshot of APNS Cert Configuration step 8.
  • Étape 9 : Accédez à votre hub de notification, cliquez sur « Apple (APNS) » sous Paramètres, puis sélectionnez « Certificat » sous Mode d’authentification. Sélectionnez également le mode d’application en fonction de vos besoins. Chargez ensuite le fichier .p12 que vous venez de créer.

    Screenshot of APNS Cert Configuration step 9.
  1. Configuration XCode
  • Dans XCode, accédez à Signing & Capabilities. Ajoutez une fonctionnalité en sélectionnant « + Capability » (Fonctionnalité), puis « Push Notifications » (Notifications Push).

  • Ajoutez une autre fonctionnalité en sélectionnant « + Capability », puis « Background Modes » (Modes d’arrière-plan). Sélectionnez également « Notifications à distance » sous Modes d’arrière-plan.

Screenshot of Enable Push Notifications and Background modes in Xcode.
  • Définissez « Exiger uniquement l’API app-extension-Coffre » comme « Non » pour la cible de pod - AzureCore

Implémentation

1 - Version de base

Si vous souhaitez implémenter une version de base de la notification Push, vous devez vous inscrire aux notifications à distance auprès d’APNS (Apple Push Notification Service). Reportez-vous à l’exemple de code pour voir l’implémentation associée dans AppDelegate.swift.

2 - Version avancée

Si vous souhaitez implémenter une version avancée de notification Push, vous devez inclure les éléments suivants dans votre application. La raison est que nous chiffrerons le contenu client (par exemple, le contenu du message de conversation, le nom complet de l’expéditeur, etc.) dans la charge utile de notification Push et qu’il nécessite une solution de contournement de votre côté.

  • Élément 1 : Stockage de données pour les clés de chiffrement

Tout d’abord, vous devez créer un stockage de données persistant dans un appareil IOS. Ce stockage de données doit être en mesure de partager des données entre l’application principale et les extensions d’application (reportez-vous à l’élément 2 pour plus d’informations sur l’extension App – Notification Service Extension).

Dans notre exemple de code, nous allons choisir « Groupe d’applications » comme stockage de données. Voici les étapes suggérées pour créer et utiliser « Groupe d’applications » :

Suivez les étapes décrites dans Ajouter une fonctionnalité pour ajouter la fonctionnalité Groupes d’applications aux cibles de votre application , à la fois l’application principale et l’extension Notification Service (reportez-vous à l’élément 2 sur la création d’une extension de service de notification).

Suivez également les étapes décrites dans ce document officiel Apple pour configurer App Group. Vérifiez que votre application principale et votre extension d’application ont le même nom de conteneur.

  • Élément 2 : Extension de service de notification

Ensuite, vous devez implémenter une « extension de service de notification » groupée avec l’application principale. Cela est utilisé pour déchiffrer la charge utile de notification Push lors de sa réception.

Accédez à ce document officiel Apple. Suivez l’étape « Ajouter une extension d’application de service à votre projet » et « Implémenter les méthodes de gestionnaire de votre extension ».

Notez que dans l’étape « Implémenter les méthodes de gestionnaire de votre extension », Apple fournit l’exemple de code pour déchiffrer les données et nous allons suivre la structure globale. Toutefois, étant donné que nous utilisons le Kit de développement logiciel (SDK) de conversation pour le déchiffrement, nous devons remplacer la partie à partir de “// Try to decode the encrypted message data.” par notre logique personnalisée. Reportez-vous à l’exemple de code pour voir l’implémentation associée dans NotificationService.swift.

  • Élément 3 : Implémentation du protocole PushNotificationKeyStorage

Troisièmement, PushNotificationKeyStorage est nécessaire pour la version avancée. En tant qu’utilisateur du SDK, vous pouvez utiliser la classe par défaut AppGroupPushNotificationKeyStorage fournie par le SDK Chat. Si vous n’utilisez pas App Group comme stockage de clés ou si vous souhaitez personnaliser les méthodes de stockage des clés, créez votre propre classe conforme au protocole PushNotificationKeyStorage.

Pour PushNotificationKeyStorage, deux méthodes sont définies : onPersistKey(encryptionKey:expiryTime) et onRetrieveKeys() -> [String].

La première méthode est utilisée pour conserver la clé de chiffrement dans le stockage de l’appareil IOS de l’utilisateur. Le Kit de développement logiciel (SDK) Chat définit 45 minutes comme heure d’expiration de la clé de chiffrement. Si vous souhaitez que la notification Push soit appliquée pendant plus de 45 minutes, vous devez planifier l’appel de chatClient.startPushNotifications(deviceToken:) sur une base comparativement fréquente (par exemple, toutes les 15 minutes) afin qu’une nouvelle clé de chiffrement puisse être inscrite avant l’expiration de l’ancienne clé.

La deuxième méthode est utilisée pour récupérer les clés valides précédemment stockées. Vous avez la possibilité de fournir la personnalisation en fonction du stockage des données (élément 1) que vous choisissez.

Dans l’extension de protocole, le Kit de développement logiciel (SDK) de conversation fournit l’implémentation de la méthode decryptPayload(notification:) -> PushNotificationEvent dont vous pouvez tirer parti. Reportez-vous à l’exemple de code pour voir l’implémentation associée dans NotificationService.swift.

Test

  1. Créez un thread de conversation avec l’utilisateur A et l’utilisateur B.

  2. Téléchargez l’exemple de dépôt d’application et suivez les étapes ci-dessus dans la section conditions préalables et implémentation.

  3. Placez les <ACESS_TOEKN> et <ACS_RESOURCE_ENDPOINT> de l’utilisateur 1 dans AppSettings.plist.

  4. Définissez « Enable Bitcode » sur « Non » pour deux cibles Pods : AzureCommunicationChat et Trouter.

  5. Connectez l’appareil IOS à votre mac, exécutez le programme et cliquez sur « Autoriser » lorsque vous êtes invité à autoriser la notification Push sur l’appareil.

  6. En tant qu’utilisateur B, envoyez un message de conversation. Vous (Utilisateur A) devez être en mesure de recevoir une notification Push dans votre appareil IOS.