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.[Version de base]
[Version avancée]
Télécharger le code
Accédez à l’exemple de code pour ce tutoriel sur GitHub.
Prérequis
Terminer toutes les étapes requises dans le guide de démarrage rapide conversation
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.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.É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.É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)
É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.
É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 ».
Étape 6 : Faites glisser le fichier .cer vers la zone « Choisir un fichier ». Appuyez ensuite sur « Continuer » dans le coin supérieur droit.
Étape 7 : Cliquez sur « Télécharger » et enregistrez le fichier sur le disque local.
É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.
É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.
- 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.
- 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
Créez un thread de conversation avec l’utilisateur A et l’utilisateur B.
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.
Placez les <ACESS_TOEKN> et <ACS_RESOURCE_ENDPOINT> de l’utilisateur 1 dans
AppSettings.plist
.Définissez « Enable Bitcode » sur « Non » pour deux cibles Pods : AzureCommunicationChat et Trouter.
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.
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.