Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia passo a passo para primeira e terceira parte fornece uma visão detalhada sobre como integrar a continuidade da aplicação (retomar) com as notificações brutas do Windows Push Notification Service (WNS). Inclui pré-requisitos, referências à documentação pública relevante e excertos de código para fazer pedidos POST ao URI do canal.
Integração para Retomar no Windows
Resume é um recurso de acesso limitado (LAF). Para aceder a esta funcionalidade, precisa de obter aprovação da Microsoft para ativar a sua aplicação no Windows.
Para solicitar acesso, envie um email wincrossdeviceapi@microsoft.com com a seguinte informação:
- Estado do registo do WNS da sua aplicação; forneça o "SID do Pacote" da sua aplicação.
- Descrição da sua experiência de utilizador.
- Captura de ecrã da sua aplicação onde o utilizador está a realizar uma ação que pode ser retomada no seu PC com Windows.
Se a Microsoft aprovar o seu pedido, recebe instruções sobre como desbloquear a funcionalidade. As aprovações baseiam-se na sua comunicação.
Pré-requisitos
Antes de avançar com a integração, certifique-se de que as seguintes tarefas são concluídas:
- Registar a Aplicação no Serviço de Notificações Push do Windows (WNS): Deve registar a sua candidatura no WNS para receber notificações. Consulte Enviar notificações para aplicações da Universal Windows Platform usando os Azure Notification Hubs para mais informações.
- Obter Credenciais de Acesso: Adquira o Identificador de Segurança do Pacote (SID) e o segredo do cliente do portal Azure.
- Configurar o URI do Canal: Garantir que a aplicação pode solicitar e armazenar o URI do canal para notificações. Veja Como pedir, criar e guardar um canal de notificações para mais informações.
- As notificações do WNS utilizam dados de carga XML para transmissão. Consulte o conteúdo das notificações da aplicação para mais informações. Para o Resumo, estamos a usar notificações cruas. Certifique-se de que a sua aplicação Windows suporta payload associada à notificação wns/raw. Consulte a visão geral das notificações brutas para mais informações.
Passos de implementação
Os passos seguintes descrevem o processo para integrar a continuidade da aplicação usando notificações raw do WNS.
Passo 1 - Configuração do URI do canal
Configura o URI do canal da tua aplicação Windows e envia-o para o servidor da tua aplicação: Garante que a aplicação pode pedir e armazenar o URI do canal para notificações. Para mais informações, veja Como pedir, criar e guardar um canal de notificações.
Passo 2 - Iniciar o cenário de retomar
A partir da sua aplicação móvel, chame a API do serviço de aplicativo necessário para iniciar o pedido de resumo baseado em WNS.
Passo 3 - Configurar o pedido HTTP
Quando o servidor da aplicação recebe o pedido de API do cliente móvel, prepara o pedido POST para o URI do canal WNS. O pedido deve incluir os cabeçalhos necessários, como Autorização, Tipo de Conteúdo e Tipo X-WNS. Para adicionar o seu novo cabeçalho, inclua-o na configuração do cabeçalho do pedido.
Passo 3.1 - Exemplo para enviar um pedido POST de currículo
Os seguintes excertos de código mostram como enviar uma nova notificação WNS com um cabeçalho de retomada usando Python e JavaScript.
O seguinte excerto de código Python demonstra como enviar uma notificação raw WNS com os cabeçalhos necessários para a continuidade da aplicação:
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}")
O seguinte excerto de código JavaScript demonstra como enviar uma notificação raw WNS com os cabeçalhos necessários para a continuidade da aplicação:
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}`);
});
O cabeçalho "X-WNS-RawNotificationType" especifica o tipo de notificação bruta que está a enviar. Normalmente não precisas de incluir este cabeçalho, mas ajuda-te a categorizar a notificação para diferentes fins, como "Resumo". Os valores possíveis para este cabeçalho podem incluir tipos como "wns/raw/resume", que sinaliza a continuação da aplicação a partir do Windows.
O cabeçalho "X-WNS-ResumeMetadata" fornece metadados sobre a notificação do currículo que está a enviar. Embora não seja estritamente obrigatório, melhora a notificação ao adicionar informações como o título ou a data de validade. Passa os metadados como um objeto JSON/Dicionário (qualquer outro tipo lança exceção de validação) e pode incluir campos como:
- título: Um título descritivo para a notificação (por exemplo, "Continuar chamada de...").
- validade: A duração da notificação em segundos (por exemplo, "300" durante 5 minutos).
- Tipo: Tipo de notificação - 1 para novo pedido de currículo, 2 para eliminar (sem ação se não estiver presente).
O seguinte excerto de código JavaScript demonstra como enviar uma notificação raw WNS com os cabeçalhos necessários para atualizar uma notificação de retomada:
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}`);
});
O seguinte excerto de código JavaScript demonstra como enviar uma notificação raw WNS com os cabeçalhos necessários para eliminar uma notificação de currículo:
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}`);
});
Ambos os cabeçalhos oferecem flexibilidade na adaptação das notificações brutas para se adequarem aos requisitos funcionais de uma aplicação.
Passo 4 - Validar a implementação
Assegure que a sua candidatura é registada com sucesso para notificações e que os cabeçalhos do currículo estão incluídos no pedido POST. Pode usar ferramentas como o vscode REST Client, Postman ou Fiddler para inspecionar o pedido HTTP e a resposta.
Aqui está um exemplo de enviar um pedido usando a extensão cliente REST do Visual Studio Code. Os X-WNS-RawNotificationType cabeçalhos e X-WNS-ResumeMetadata são obrigatórios para a continuidade da aplicação:
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"}]
A resposta do cliente REST do VS Code é exibida no mesmo formato das respostas de notificação existentes. Para detalhes sobre códigos de estado, consulte o link de referência: Enviar uma notificação nativa dos Serviços de Notificação Push do Windows (WNS).
Conclusion
Seguindo os passos descritos neste guia, as primeiras e terceiras partes podem adicionar com sucesso cabeçalhos personalizados às notificações do WNS. Certifique-se de que cumpre todos os pré-requisitos e teste cuidadosamente para garantir uma integração perfeita.
Para quaisquer questões ou assistência relativa à implementação, contacte a nossa equipa através do seguinte:
Email: wincrossdeviceapi@microsoft.com
Estamos aqui para ajudar a garantir um processo de integração fluido.
Conteúdo relacionado
Windows developer