Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide pas à pas pour les premiers et les tiers fournit une vue d’ensemble détaillée de l’intégration de la continuité des applications (reprise) aux notifications brutes WNS (Windows Push Notification Service). Il inclut les prérequis, les références à la documentation publique pertinente et les extraits de code pour effectuer des requêtes POST à l’URI du canal.
Reprise de l'onboarding dans Windows
Resume est une fonctionnalité d’accès limité (LAF). Pour accéder à cette fonctionnalité, vous devez obtenir l’approbation de Microsoft pour activer votre application sur Windows.
Pour demander l’accès, envoyez un e-mail wincrossdeviceapi@microsoft.com avec les informations suivantes :
- Indiquez l'état de l'enregistrement WNS de votre application et fournissez le « SID de package » de votre application.
- Description de votre expérience utilisateur.
- Capture d’écran de votre application où l’utilisateur effectue une action qui peut être reprise sur son PC Windows.
Si Microsoft approuve votre demande, vous recevez des instructions sur la façon de déverrouiller la fonctionnalité. Les approbations sont basées sur votre communication.
Prerequisites
Avant de poursuivre l’intégration, vérifiez que les tâches suivantes sont terminées :
- Inscrire l’application auprès du service de notification Push Windows (WNS) : vous devez inscrire votre application auprès de WNS pour recevoir des notifications. Pour plus d’informations, consultez Envoyer des notifications aux applications de plateforme Windows universelle à l’aide d’Azure Notification Hubs .
- Obtenir les informations d’identification d’accès : acquérir l’identificateur de sécurité de package (SID) et la clé secrète client à partir du portail Azure.
- Configurez l’URI du canal : vérifiez que l’application peut demander et stocker l’URI du canal pour les notifications. Pour plus d’informations , voir Comment demander, créer et enregistrer un canal de notification .
- Les notifications WNS utilisent des charges utiles XML pour la transmission. Pour plus d’informations, consultez le contenu de notification d’application . Pour Resume, nous utilisons des notifications brutes. Vérifiez que votre application Windows prend en charge la charge utile associée aux notifications wns/raw. Pour plus d’informations, consultez la vue d’ensemble des notifications brutes .
Étapes d’implémentation
Les étapes suivantes décrivent le processus d’intégration de la continuité des applications à l’aide de notifications brutes WNS.
Étape 1 : configuration de l’URI du canal
Configurez l’URI de canal à partir de votre application Windows et envoyez-le à votre serveur d’applications : vérifiez que l’application peut demander et stocker l’URI du canal pour les notifications. Pour plus d’informations, consultez Comment demander, créer et enregistrer un canal de notification.
Étape 2 : Lancer le scénario de reprise
À partir de votre application mobile, appelez l’API de service d’application nécessaire pour lancer la demande de reprise basée sur WNS.
Étape 3 : configurer la requête HTTP
Lorsque le serveur d’applications reçoit la demande d’API du client mobile, il prépare la requête POST à l’URI du canal WNS. La demande doit inclure les en-têtes requis, tels que l’autorisation, le type de contenu et le type X-WNS. Pour ajouter votre nouvel en-tête, incluez-le dans la configuration de l’en-tête de demande.
Étape 3.1 : Exemple d'envoi d'une requête POST de CV
Les extraits de code suivants montrent comment envoyer une nouvelle notification WNS avec un en-tête de reprise à l’aide de Python et JavaScript.
L’extrait de code Python suivant montre comment envoyer une notification brute WNS avec les en-têtes nécessaires à la continuité de l’application :
import requests
# Define the channel URI
channel_uri = "[URL]"
# Define the notification payload
payload = """
Sample Notification
This is a sample message
"""
# Define the headers
headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": {"title":"Continue call from…","expiry":"300", "type":"1"},
}
# Send the POST request
response = requests.post(channel_uri, data=payload, headers=headers)
# Print the response status
print(f"Response Status: {response.status_code}")
print(f"Response Body: {response.text}")
L’extrait de code JavaScript suivant montre comment envoyer une notification brute WNS avec les en-têtes nécessaires à la continuité des applications :
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "1"
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
L’en-tête « X-WNS-RawNotificationType » spécifie le type de notification brute que vous envoyez. Vous n’avez généralement pas besoin d’inclure cet en-tête, mais il vous aide à catégoriser la notification à des fins différentes, telles que « Reprendre ». Les valeurs possibles pour cet en-tête peuvent inclure des types tels que « wns/raw/resume », ce qui signale la continuation de l’application à partir de Windows.
L’en-tête « X-WNS-ResumeMetadata » fournit des métadonnées sur la notification de reprise que vous envoyez. Bien qu’elle ne soit pas strictement requise, elle améliore la notification en ajoutant des informations telles qu’un titre ou un délai d’expiration. Vous transmettez les métadonnées en tant qu’objet JSON/Dictionary (tout autre type lève une exception de validation) et il peut inclure des champs tels que :
- titre : titre descriptif de la notification (par exemple, « Continuer l’appel à partir de... »).
- expiration : durée de vie de la notification en secondes (par exemple, « 300 » pendant 5 minutes).
- type : type de notification - 1 pour la nouvelle demande de reprise, 2 pour la suppression (aucune action si elle est manquante).
L’extrait de code JavaScript suivant montre comment envoyer une notification brute WNS avec les en-têtes nécessaires pour mettre à jour une notification de reprise :
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "2" // 2-represents update type.
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
L’extrait de code JavaScript suivant montre comment envoyer une notification brute WNS avec les en-têtes nécessaires pour supprimer une notification de reprise :
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "3" // 3-represents delete type.
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
Les deux en-têtes offrent une flexibilité en adaptant les notifications brutes pour répondre aux exigences fonctionnelles d’une application.
Étape 4 : Valider l’implémentation
Vérifiez que votre application se déclare correctement pour les notifications et assurez-vous que les en-têtes de reprise sont inclus dans la requête POST. Vous pouvez utiliser des outils tels que vscode REST Client, Postman ou Fiddler pour inspecter la requête et la réponse HTTP.
Voici un exemple d’envoi d’une requête à l’aide de l’extension client REST Visual Studio Code. Les en-têtes X-WNS-RawNotificationType et X-WNS-ResumeMetadata sont requis pour la continuité des applications :
POST {{channel_uri}}
Content-Type: application/octet-stream
X-WNS-Type: wns/raw
X-WNS-RequestForStatus: true
X-WNS-RawNotificationType: wns/raw/resume
X-WNS-ResumeMetadata: {"title": "Continue call from...", "expiry": "300", "type": "1"}
Authorization: Bearer {{bearer}}
[{"hello"}]
La réponse du client REST VS Code s’affiche au même format que les réponses de notification existantes. Pour plus d’informations sur les codes d’état, consultez le lien de référence : envoyer une notification native Windows Push Notification Services (WNS).
Conclusion
En suivant les étapes décrites dans ce guide, les premiers et les tiers peuvent ajouter des en-têtes personnalisés aux notifications WNS. Assurez-vous que vous remplissez tous les prérequis et testez soigneusement pour garantir une intégration transparente.
Pour toute requête ou assistance concernant l’implémentation, contactez notre équipe à l’adresse suivante :
Messagerie électronique: wincrossdeviceapi@microsoft.com
Nous sommes ici pour vous aider à assurer un processus d’intégration fluide.
Contenu connexe
Windows developer