Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese schrittweise Anleitung für erste und Dritte bietet eine detaillierte Übersicht über die Integration der Anwendungskontinuität (Lebenslauf) in unformatierte Benachrichtigungen des Windows-Pushbenachrichtigungsdiensts (Windows Push Notification Service, WNS). Sie enthält Voraussetzungen, Verweise auf relevante öffentliche Dokumentationen und Codeausschnitte zum Senden von POST-Anforderungen an den Kanal-URI.
Onboarding zum Fortsetzen in Windows
Resume ist ein Feature für eingeschränkten Zugriff (Limited Access Feature, LAF). Um Zugriff auf dieses Feature zu erhalten, müssen Sie die Genehmigung von Microsoft erhalten, um Ihre Anwendung unter Windows zu aktivieren.
Um den Zugriff anzufordern, senden Sie eine E-Mail wincrossdeviceapi@microsoft.com mit den folgenden Informationen:
- Status der WNS-Registrierung Ihrer Anwendung und geben Sie die "Package SID" Ihrer Anwendung an.
- Beschreibung Der Benutzererfahrung.
- Screenshot Ihrer Anwendung, in der der Benutzer eine Aktion ausführt, die auf ihrem Windows-PC fortgesetzt werden kann.
Wenn Microsoft Ihre Anforderung genehmigt, erhalten Sie Anweisungen zum Entsperren des Features. Genehmigungen basieren auf Ihrer Kommunikation.
Voraussetzungen
Bevor Sie mit der Integration fortfahren, stellen Sie sicher, dass die folgenden Aufgaben abgeschlossen sind:
- Registrieren Sie die Anwendung beim Windows-Pushbenachrichtigungsdienst (Windows Push Notification Service, WNS): Sie müssen Ihre Anwendung bei WNS registrieren, um Benachrichtigungen zu empfangen. Weitere Informationen finden Sie unter Senden von Benachrichtigungen an Apps für die universelle Windows-Plattform mit Azure Notification Hubs .
- Erhalten Sie Zugriffsanmeldeinformationen: Erhalten Sie den Paketsicherheitsbezeichner (Package Security Identifier, SID) und das Clientgeheimnis aus dem Azure-Portal.
- Konfigurieren Sie den Kanal-URI: Stellen Sie sicher, dass die App den Kanal-URI für Benachrichtigungen anfordern und speichern kann. Weitere Informationen finden Sie unter "Anfordern, Erstellen und Speichern eines Benachrichtigungskanals ".
- WNS-Benachrichtigungen verwenden XML-Nutzlasten für die Übertragung. Weitere Informationen finden Sie unter App-Benachrichtigungsinhalte . Für "Fortsetzen" werden unformatierte Benachrichtigungen verwendet. Stellen Sie sicher, dass Ihre Windows-Anwendung die Nutzlast unterstützt, die mit wns/raw-Benachrichtigungen verknüpft ist. Weitere Informationen finden Sie in der Übersicht über unformatierte Benachrichtigungen .
Implementierungsschritte
In den folgenden Schritten wird der Prozess zur Integration der Anwendungskontinuität mithilfe von unformatierten WNS-Benachrichtigungen beschrieben.
Schritt 1: Konfigurieren des Kanal-URI
Konfigurieren Sie den Kanal-URI aus Ihrer Windows-Anwendung, und senden Sie ihn an Ihren App-Server: Stellen Sie sicher, dass die App den Kanal-URI für Benachrichtigungen anfordern und speichern kann. Weitere Informationen finden Sie unter "Anfordern, Erstellen und Speichern eines Benachrichtigungskanals".
Schritt 2 : Starten des Fortsetzungsszenarios
Rufen Sie in Ihrer mobilen Anwendung die erforderliche Anwendungsdienst-API auf, um die WNS-basierte Fortsetzungsanforderung zu initiieren.
Schritt 3 : Einrichten der HTTP-Anforderung
Wenn der App-Server die API-Anforderung vom mobilen Client empfängt, bereitet er die POST-Anforderung auf den WNS-Kanal-URI vor. Die Anforderung muss die erforderlichen Header enthalten, z. B. Autorisierung, Inhaltstyp und X-WNS-Typ. Um den neuen Header hinzuzufügen, fügen Sie ihn in die Anforderungsheaderkonfiguration ein.
Schritt 3.1 – Beispiel für das Senden einer POST-Anforderung für den Lebenslauf
Die folgenden Codeausschnitte zeigen, wie sie eine neue WNS-Benachrichtigung mit einem Lebenslaufheader mithilfe von Python und JavaScript senden.
Der folgende Python-Codeausschnitt veranschaulicht, wie eine unformatierte WNS-Benachrichtigung mit den erforderlichen Headern für die Anwendungskontinuität gesendet wird:
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}")
Der folgende JavaScript-Codeausschnitt veranschaulicht, wie eine unformatierte WNS-Benachrichtigung mit den erforderlichen Headern für die Anwendungskontinuität gesendet wird:
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}`);
});
Der Header "X-WNS-RawNotificationType" gibt den Typ der unformatierten Benachrichtigung an, die Sie senden. In der Regel müssen Sie diesen Header nicht einschließen, aber es hilft Ihnen, die Benachrichtigung für unterschiedliche Zwecke zu kategorisieren, z. B. "Fortsetzen". Mögliche Werte für diesen Header können Typen wie "wns/raw/resume" enthalten, die die Anwendungsfortsetzung von Windows signalisieren.
Der Header "X-WNS-ResumeMetadata" stellt Metadaten zur Lebenslauf-Benachrichtigung bereit, die Sie senden. Obwohl nicht unbedingt erforderlich, wird die Benachrichtigung durch Hinzufügen von Informationen wie einem Titel oder einer Ablaufzeit verbessert. Sie übergeben die Metadaten als JSON/Dictionary-Objekt (ein beliebiger anderer Typ löst einen Validierungsfehler aus) und es kann Felder wie enthalten:
- title: Ein beschreibender Titel für die Benachrichtigung (z. B. "Anruf fortsetzen von...").
- ablaufen: Die Lebensdauer der Benachrichtigung in Sekunden (z. B. "300" für 5 Minuten).
- type: Benachrichtigungstyp - 1 für neue Lebenslaufanfrage, 2 für löschen (keine Aktion, wenn fehlt).
Der folgende JavaScript-Codeausschnitt veranschaulicht, wie eine unformatierte WNS-Benachrichtigung mit den erforderlichen Headern zum Aktualisieren einer Fortsetzungsbenachrichtigung gesendet wird:
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}`);
});
Der folgende JavaScript-Codeausschnitt veranschaulicht, wie eine unformatierte WNS-Benachrichtigung mit den erforderlichen Headern zum Löschen einer Fortsetzungsbenachrichtigung gesendet wird:
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}`);
});
Beide Header bieten Flexibilität beim Anpassen von unformatierten Benachrichtigungen an die funktionalen Anforderungen einer Anwendung.
Schritt 4 – Überprüfen der Implementierung
Stellen Sie sicher, dass ihre Anwendung sich erfolgreich für Benachrichtigungen registriert und die Lebenslaufheader in der POST-Anforderung enthalten sind. Sie können Tools wie vscode REST-Client, Postman oder Fiddler verwenden, um die HTTP-Anforderung und -Antwort zu prüfen.
Hier ist ein Beispiel für das Senden einer Anfrage mithilfe der REST-Client-Erweiterung von Visual Studio Code. Die Header X-WNS-RawNotificationType und X-WNS-ResumeMetadata sind für die Anwendungskontinuität erforderlich.
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"}]
Die Antwort vom VS Code REST-Client wird im gleichen Format wie vorhandene Benachrichtigungsantworten angezeigt. Ausführliche Informationen zu Statuscodes finden Sie in der Referenz: Windows Push Notification Services (WNS) native Benachrichtigung senden.
Conclusion
Wenn Sie die in diesem Leitfaden beschriebenen Schritte ausführen, können Erst- und Drittanbieter erfolgreich benutzerdefinierte Header zu WNS-Benachrichtigungen hinzufügen. Stellen Sie sicher, dass Sie alle Voraussetzungen erfüllen und sorgfältig testen, um eine nahtlose Integration zu gewährleisten.
Bei Fragen oder Unterstützung zur Implementierung wenden Sie sich bitte an unser Team unter:
E-Mail: wincrossdeviceapi@microsoft.com
Wir sind hier, um einen reibungslosen Integrationsprozess sicherzustellen.
Verwandte Inhalte
Windows developer