Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento průvodce krok za krokem pro první a třetí strany (zapojené strany) poskytuje detailní přehled o tom, jak integrovat kontinuitu aplikací (pokračování) se surovými oznámeními služby Windows Push Notification Service (WNS). Zahrnuje požadavky, odkazy na příslušnou veřejnou dokumentaci a fragmenty kódu pro provádění požadavků POST na identifikátor URI kanálu.
Oživování (či Restartování) procesu integrace ve Windows
Obnovení je funkce s omezeným přístupem (LAF). Pokud chcete získat přístup k této funkci, musíte získat schválení od Microsoft, abyste aplikaci povolili na Windows.
Pokud chcete požádat o přístup, pošlete e-mail wincrossdeviceapi@microsoft.com s následujícími informacemi:
- Stav registrace vaší aplikace ve službě WNS a poskytněte "Package SID" balíčku vaší aplikace.
- Popis uživatelského prostředí
- Snímek obrazovky aplikace, kde uživatel provádí akci, která se dá obnovit na Windows počítači
Pokud Microsoft vaši žádost schválí, obdržíte pokyny k odemknutí funkce. Schválení jsou založená na vaší komunikaci.
Požadavky
Než budete pokračovat v integraci, ujistěte se, že jsou dokončeny následující úlohy:
- Zaregistrujte aplikaci ve službě WNS (Windows Push Notification Service): Chcete-li dostávat oznámení, musíte aplikaci zaregistrovat ve službě WNS. Další informace najdete v tématu Posílání oznámení na aplikace pro Univerzální platforma Windows pomocí Azure Notification Hubs.
- Získání přihlašovacích údajů pro přístup: Získání identifikátoru zabezpečení balíčku (SID) a tajného klíče klienta z portálu Azure.
- Nakonfigurujte identifikátor URI kanálu: Ujistěte se, že aplikace může požadovat a uložit identifikátor URI kanálu pro oznámení. Další informace najdete v tématu Jak požádat, vytvořit a uložit kanál oznámení .
- Oznámení WNS používají datové části XML pro přenos. Další informace najdete v obsahu oznámení aplikace . Pro životopis používáme surová oznámení. Ujistěte se, že vaše aplikace Windows podporuje datovou část přidruženou k oznámením wns/raw. Další informace najdete v přehledu nezpracovaných oznámení .
Implementační kroky
Následující kroky popisují proces integrace kontinuity aplikací pomocí nezpracovaných oznámení WNS.
Krok 1 – Konfigurace identifikátoru URI kanálu
Nakonfigurujte identifikátor URI kanálu z vaší Windows aplikace a odešlete ho na server aplikace: Ujistěte se, že aplikace může požadovat a ukládat identifikátor URI kanálu pro oznámení. Další informace najdete v tématu Jak požádat, vytvořit a uložit kanál oznámení.
Krok 2 – Zahájení scénáře obnovení
Z mobilní aplikace zavolejte potřebné rozhraní API aplikační služby, abyste zahájili žádost o obnovení založenou na službě WNS.
Krok 3 – Nastavení požadavku HTTP
Když aplikační server obdrží požadavek rozhraní API z mobilního klienta, připraví požadavek POST na identifikátor URI kanálu WNS. Požadavek musí obsahovat požadovaná záhlaví, jako je autorizace, typ obsahu a typ X-WNS. Pokud chcete přidat novou hlavičku, zahrňte ji do konfigurace hlavičky požadavku.
Krok 3.1 – Příklad odeslání životopisu prostřednictvím POST žádosti
Následující fragmenty kódu ukazují, jak pomocí Python a JavaScriptu odeslat nové oznámení WNS s hlavičkou životopisu.
Následující fragment kódu Python ukazuje, jak odeslat nezpracované oznámení WNS s potřebnými hlavičkami pro kontinuitu aplikací:
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}")
Následující fragment kódu JavaScriptu ukazuje, jak odeslat nezpracované oznámení WNS s potřebnými hlavičkami pro kontinuitu aplikací:
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}`);
});
Hlavička X-WNS-RawNotificationType určuje typ nezpracovaného oznámení, které odesíláte. Obvykle tuto hlavičku nemusíte zahrnout, ale pomůže vám to zařadit oznámení do kategorií pro různé účely, například "Pokračovat". Možné hodnoty pro tuto hlavičku můžou zahrnovat typy jako "wns/raw/resume" což signalizuje pokračování aplikace z Windows.
Hlavička X-WNS-ResumeMetadata poskytuje metadata o odesílaných oznámeních o obnovení. I když to není nezbytně nutné, vylepšuje oznámení přidáním informací, jako je název nebo čas vypršení platnosti. Metadata předáte jako objekt JSON/Dictionary (jakýkoli jiný typ vyvolá výjimku ověření) a může obsahovat například tato pole:
- title: Popisný název oznámení (například "Pokračovat v volání od...").
- expiry: Životnost oznámení v sekundách (například 300 po dobu 5 minut).
- type: Typ oznámení – 1 pro novou žádost o obnovení, 2 pro odstranění (pokud chybí žádná akce).
Následující fragment kódu JavaScriptu ukazuje, jak odeslat nezpracované oznámení WNS s potřebnými hlavičkami pro aktualizaci oznámení o obnovení:
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}`);
});
Následující fragment kódu JavaScriptu ukazuje, jak odeslat nezpracované oznámení WNS s potřebnými hlavičkami pro odstranění oznámení o obnovení:
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}`);
});
Obě hlavičky nabízejí flexibilitu při přizpůsobení nezpracovaných oznámení tak, aby vyhovovala požadavkům na funkčnost aplikace.
Krok 4 – Ověření implementace
Ujistěte se, že vaše aplikace úspěšně zaregistruje oznámení a že hlavičky životopisu jsou součástí požadavku POST. Ke kontrole požadavku HTTP a odpovědi můžete použít nástroje, jako je vscode REST Client, Postman nebo Fiddler.
Tady je příklad odeslání požadavku pomocí rozšíření Visual Studio Code REST Client. Hlavičky X-WNS-RawNotificationType a X-WNS-ResumeMetadata jsou vyžadovány pro kontinuitu aplikace:
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"}]
Odpověď z klienta REST VS Code se zobrazí ve stejném formátu jako existující odpovědi na oznámení. Podrobnosti o stavových kódech najdete v referenčním odkazu: Odeslání nativního oznámení služby Windows Push Notification Services (WNS).
Conclusion
Podle kroků uvedených v této příručce mohou první a třetí strany úspěšně přidat vlastní hlavičky do oznámení WNS. Ujistěte se, že splňujete všechny požadavky a důkladně testujete, abyste zajistili bezproblémovou integraci.
V případě jakýchkoli dotazů nebo pomoci týkajících se implementace se obraťte na náš tým na následující adrese:
E-mail: wincrossdeviceapi@microsoft.com
Jsme tady, abychom vám pomohli zajistit hladký proces integrace.
Související obsah
- Přehled nezpracovaných oznámení
- Jak požádat, vytvořit a uložit kanál oznámení
- Přehled odesílání oznámení prostřednictvím WNS – odesílání oznámení do aplikací pro Univerzální platforma Windows pomocí Azure Notification Hubs
Windows developer