Použijte oznámení WNS pro implementaci obnovení mezi zařízeními (XDR)

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:

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.