Solução de problemas de bloco, notificação do sistema e selo
Idioma: HTML | XAML

Solução de problemas de bloco, notificação do sistema e selo (aplicativos do Tempo de Execução do Windows)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Este tópico descreve as etapas iniciais de solução de problemas caso você tenha problemas com blocos, notificações do sistema e selos, incluindo os diversos métodos de notificação: notificações locais, por push, periódicas e agendadas.

Solução de problemas de notificações de bloco

Esta seção aborda alguns erros comuns que você pode encontrar ao trabalhar com blocos e modelos de bloco. A menos que especificado o contrário, cada solução aplica-se a todos os tipos de envio de notificação: notificações locais, agendadas, periódicas ou por push.

A notificação de bloco local não é exibida

O problema mais comum nesta situação é que o XML utilizado para definir a sua notificação está incorreto de alguma forma. Mas há outras causas possíveis, que também são abordadas por estas etapas:

Verificar as configurações do usuário

Causa possível: o usuário ou administrador desabilitou as notificações. Verifique se o aplicativo tem uma opção Ligar/Desligar bloco dinâmico na barra de aplicativos e se ela não está "desligada". Para o administrador, há diversas políticas de grupo que podem desabilitar as notificações. Verifique com o administrador para garantir que as notificações sejam habilitadas.

Correção: habilite as notificações por meio da barra de aplicativos ou peça para o administrador habilitá-las pela política de grupo.

Para saber mais, veja TileUpdater.setting.

Fornecer recursos de logotipo largo ou grande no manifesto do aplicativo

Causa possível: o manifesto do aplicativo não especificou uma imagem de recurso do bloco padrão para o tamanho do bloco indicado na notificação. Por exemplo, se a imagem do bloco grande padrão não for fornecida, o bloco nunca vai exibir modelos de notificação de formato grande. O ideal é que as notificações de bloco forneçam modelos na carga de notificação para todos os tamanhos de bloco possíveis, porque o remetente nunca sabe qual tamanho de bloco vai aparecer quando a notificação chegar, exceto quando o bloco usa apenas uma imagem média intencionalmente. Essa configuração é totalmente a critério do usuário.

Correção: em sua carga de notificação, forneça uma versão da atualização para cada tipo de imagem de logotipo padrão que você forneceu em seu manifesto. O bloco pode ser redimensionado para qualquer tamanho que tenha uma imagem do logotipo padrão.

Verificar os tamanhos de suas imagens

Causa possível: cada imagem em uma notificação deve ser menor que 1024 x 1024 pixels e ter menos de 200 KB. Se qualquer imagem na notificação exceder qualquer uma dessas dimensões, a notificação será descartada.

Correção: reduza suas imagens.

Para saber mais, veja Tamanhos de imagens de bloco e notificação do sistema.

Verificar suas URLs

Causa possível: erros de sintaxe da URL.

As imagens nas notificações são especificadas por meio de uma referência de recurso ou um caminho literal. Se um caminho for usado, ele deverá ser fornecido usando um destes três protocolos:

PrefixoUsoObservações
http:// e https://Imagens armazenadas online

Essas imagens podem ser armazenadas localmente em cache; assim, o servidor de imagens pode não receber uma solicitação para a imagem. As cadeias de caracteres de consulta podem ser anexadas a essas URLs. Verifique se o servidor Web retorna a imagem original, em vez de um 404, quando você ignora a cadeia de caracteres de consulta. Um exemplo de cadeia de caracteres de consulta: ?scale=100&contrast=blk&lang=en-US

Observe que, para recuperar qualquer conteúdo de notificação da Internet, seu aplicativo deve declarar o recurso "Internet (Cliente)" no manifesto do aplicativo.

ms-appx:///Imagens incluídas no pacote do aplicativoEstas imagens fazem parte da instalação do seu aplicativo. Observe que essa referência pede três barras após os dois-pontos. Depois das três barras, o URI (Uniform Resource Identifier) aceita uma barra (/) ou uma barra invertida (\) para separar pastas em um caminho, mas a maioria das linguagens de programação pede um caractere de escape quando você especifica uma barra invertida (\\).
ms-appdata:///local/Imagens salvas localmente pelo aplicativoEste local corresponde à pasta retornada pela Windows.Storage.ApplicationData.current.localFolder. Observe que essa referência pede três barras após os dois-pontos. Os separadores de pastas no caminho devem usar os caracteres de escape (\\).

 

Observação  O caractere ' /' funciona como um separador em cada tipo de especificação. Recomendamos que você sempre use ' /' em vez de ' \' para evitar confusão inadvertida com caracteres de escape.
 

Exemplos de boa formação:

URL
http://www.contoso.com/icon.jpg
ms-appx:///images/icon.png
ms-appdata:///local/myDrawing.jpg

 

Exemplos de má formação:

URLObservações
http://www.contoso.com\fail.pngUm caminho HTTP deve usar o caractere /. Não use o caractere \.
http:www.contoso.comUm caminho HTTP pede duas barras (//) após os dois-pontos.
"ms-appdata:///local/c:\\images\\Drawing.jpg"Um aplicativo não pode fazer referência a imagens fora do seu armazenamento local.
"ms-appx://images/triangle.png"Use três barras em vez de duas com "ms-appx:".

 

Examinar seus formatos de imagem

Causa possível: as imagens estão em um formato sem suporte.

As notificações só podem usar imagens em formato .gif, .png ou .jpg/.jpeg. O formato da imagem também deve corresponder à sua extensão. Renomear simplesmente um tipo de arquivo incompatível com a extensão permitida não funciona.

A causa mais comum de erros no formato de imagem é a serialização de bitmaps para o armazenamento Windows.Storage.ApplicationData.current.localFolder. Certifique-se de chamar seu formato preferido, senão a imagem será armazenada como um bitmap do Windows, e seu cabeçalho incluirá "BMP"—um tipo não suportado.

Para verificar: primeiro, verifique se você consegue enviar uma notificação somente texto para restringir o problema à imagem. Uma forma de verificar o formato de sua imagem é carregar a sua imagem para um programa de processamento de imagem e salvá-la como .jpg. Se você mencionar este novo arquivo .jpg em sua notificação e o erro não se repetir, provavelmente ocorreu um erro de formato de imagem. Você também pode abrir o arquivo no editor binário do Microsoft Visual Studio e examinar seu cabeçalho.

Correção: altere ou corrija seus formatos de imagem.

Verificar sua sintaxe XML e conteúdo

Causa possível: erros de sintaxe ou de validação XML.

Além da sintaxe básica, certifique-se de que seu XML esteja completo e correto, especialmente se você tiver construído a carga como uma cadeia de caracteres sem usar as APIs ou a biblioteca NotificationsExtensions. Alguns pontos comuns de falha no conteúdo XML incluem o seguinte:

  • Diferenciação de maiúsculas e minúsculas. Nomes de marca, nomes de atributo e valores de atributo diferenciam maiúsculas de minúsculas. Verifique se o seu XML tem o uso correto de maiúsculas e minúsculas.
  • Um elemento binding pode ser fornecido para cada tamanho de bloco. Você deve fornecer um elemento binding para cada um dos tamanhos de bloco ao qual dá suporte (ou seja, as imagens de logotipo que você forneceu em seu manifesto) em cada notificação enviada.
  • As cadeias de caracteres de texto não devem conter caracteres XML reservados. Por exemplo, você não pode aplicar itálico às cadeias de caracteres do bloco, incluindo as marcas <i> e </i>. Se você pretende mostrar os caracteres literais "<i>", eles devem incluir o escape apropriado. Para saber mais sobre os caracteres de escape no XML, veja Entidades de caracteres XML e XAML.
  • Os valores fornecidos para os atributos lang devem estar em conformidade com a especificação ITEF BCP 47.
  • As cadeias de caracteres XML criadas localmente (para notificações locais ou agendadas) devem usar a codificação UTF-16. Quando enviadas através notificações por push ou de uma URL, as cadeias de caracteres devem usar a codificação UTF-8
  • Se você incluir um elemento image à sua carga XML com um atributo src não vazio, deverá incluir uma referência a uma imagem válida ou a notificação será ignorada.

Você pode usar o Log de Eventos para verificar se há erros quando sua notificação de bloco não for exibida. Procure eventos que envolvam sua notificação de bloco no Visualizador de Eventos, em Aplicativos e Logs de Serviços > Microsoft > Windows > Aplicativos > Microsoft-Windows-TWinUI/Operacional.

Para verificar: use um verificador de sintaxe XML, como o editor do Visual Studio, para procurar erros básicos de sintaxe. Consulte a referência de modelo apropriada (TileTemplateType) para garantir que você tenha o número correto de imagens e que esteja atribuindo as imagens corretas ao índice de imagem correto.

Correção: altere seu XML ou use um modelo diferente de acordo com seu conteúdo. Considere também usar a biblioteca NotificationsExtensions para evitar manipular o XML diretamente.

Verificar se sua notificação não expirou

Causa possível: o vencimento está definido como um valor muito pequeno.

Se você tiver definido o vencimento em sua notificação usando o método expirationTime (para uma notificação local) ou o campo do cabeçalho X-WNS-TTL (em uma notificação por push), verifique se os valores representam milissegundos. Por exemplo, se você quiser que uma notificação de bloco dure exatamente uma hora, o valor deverá ser 60 * 60 * 1000 = 3600000.

Correção: use um valor maior.

Verificar se você habilitou a fila de notificação para passar em ciclos pelas notificações

Causa possível: a fila de notificação de bloco não foi habilitada.

Por padrão, os blocos exibem apenas uma atualização por vez, e uma nova notificação de entrada substitui a existente. Para exibir as últimas cinco notificações em uma rotação, você deve chamar TileUpdater.enableNotificationQueue(true) no código de iniciação do seu aplicativo. Isso precisa ser feito pelo menos uma vez durante o tempo de vida do seu aplicativo. Para saber mais, veja Como usar a fila de notificações com notificações locais.

Correção: chame enableNotificationQueue(true) em seu código de inicialização. Além disso, verifique se as marcas de notificação são exclusivas.

Solução de problemas de notificações agendadas

Um bloco ou uma notificação do sistema agendada não aparece

Causa possível: quando você tem algum problema com atualizações de bloco ou notificações do sistema que não aparecem, muito provavelmente o conteúdo XML da notificação está formatado de forma incorreta. Os blocos e notificações do sistema agendados, assim como as notificações não agendadas, devem seguir os esquemas XML de bloco e notificação do sistema.

Correção: teste o XML em uma notificação local como o primeiro passo para solucionar os problemas de entrega com notificações agendadas. Para saber mais, veja a seção A notificação de bloco local não é exibida ou A notificação do sistema local não é exibida neste tópico.

Falha na chamada do aplicativo para o método AddToSchedule

Causa possível: você excedeu o número máximo permitido de notificações agendadas.

Correção: TileUpdater.addToSchedule e ToastNotifier.addToSchedule falham quando você tenta agendar mais de 4096 notificações. Reduza o número de notificações agendadas.

Causa possível: sua notificação está agendada para uma hora passada comparada a hora atual do relógio do sistema.

Correção: verifique se a hora da notificação agendada está no futuro. Verifique a hora do relógio do sistema.

Solução de problemas de notificações periódicas (sondadas)

Notificações periódicas não atualizam o bloco ou selo

Você pode encontrar um ou mais destes problemas que podem impedir que as suas notificações periódicas sejam exibidas:

  • O serviço Web não está retornando um documento XML válido de acordo com o esquema XML do bloco. Se você encontrar problemas ao implementar notificações periódicas, primeiro verifique se o XML do seu bloco está formatado corretamente. Ao depurar um problema com notificações periódicas, como uma primeira etapa, recomendamos que você teste seu XML por meio de uma notificação local. Para saber mais, veja a seção A notificação de bloco local não é exibida neste tópico e também o Guia de início rápido: enviando uma atualização de bloco.
  • O texto retornado da solicitação de sondagem não está formatado como UTF-8. A codificação UTF-8 é necessária.
  • Seu serviço não está respondendo corretamente à solicitação HTTP GET utilizada pelo Windows ao sondar a URL fornecida para seu serviço. Ambos os protocolos HTTP e HTTPS são permitidos.
  • Seu aplicativo não declarou o recurso de Internet no seu arquivo de manifesto do aplicativo (package.appxmanifest). No editor de manifesto do Visual Studio, você encontra essa opção na guia Recursos como Internet (Cliente). Se esse recurso não for declarado no aplicativo, o Windows não vai sondar o seu serviço.
  • Verifique se os valores definidos pelos cabeçalhos X-WNS-Tag e X-WNS-Expires estão formatados adequadamente. O X-WNS-Expires deve usar um dos seguintes formatos:
    • Dom, 06 de nov de 1994 08:49:37 GMT
    • Domingo, 06 de nov de 94 08:49:37 GMT
    • Dom, 06 de nov de 1994 08:49:37

Atualizações periódicas são atrasadas

  • O Windows pode atrasar a sondagem da sua URL em até 15 minutos, se necessário, para otimizar a potência e o desempenho.
  • Seu serviço não estava disponível no momento em que a URL foi acessada. Quando o serviço não estiver disponível, ele não será acessado novamente até o próximo intervalo de sondagem.

Solução de problemas de notificações por push

Esta seção aborda alguns erros comuns que você pode encontrar ao trabalhar com notificações por push.

Verificar os logs de eventos

Se as notificações de bloco ou por push do sistema não forem exibidas conforme esperado, veja os logs de eventos.

  • Se a notificação for recebida, mas não aparecer: inicie o Visualizador de Eventos e examine o log Microsoft-Windows-TWinUI/Operational em Applications and Services\Microsoft\Windows\Apps.
  • Se a notificação não for recebida: inicie o Visualizador de Eventos e examine o log Operacional em Applications and Services\Microsoft\Windows\PushNotifications-Platform.

A notificação por push recebe uma resposta "200 OK", mas não é exibida

Se o WNS (Serviços de Notificação por Push do Windows) retornar uma resposta "200 OK", ele vai enviar a notificação ao cliente, se o cliente estiver online. Se você confirmou que o cliente está online, mas a notificação não aparece, siga estas etapas:

  • Causa: erros de XML no conteúdo da notificação.

    Correção: verifique a sintaxe XML básica e se o seu XML está completo e correto. Alguns pontos comuns de falha no conteúdo XML incluem o seguinte:

    • Diferenciação de maiúsculas e minúsculas. Nomes de marca, nomes de atributo e valores de atributo diferenciam maiúsculas de minúsculas. Verifique se o seu XML tem o uso correto de maiúsculas e minúsculas.
    • Um elemento binding pode ser fornecido para cada tamanho de bloco suportado. Você deve fornecer um elemento binding para cada um dos tamanhos de bloco a que dá suporte em cada notificação enviada.
    • As cadeias de caracteres de texto não devem conter caracteres XML reservados. Por exemplo, você não pode aplicar itálico às cadeias de caracteres do bloco ou da notificação do sistema, incluindo as marcas <i> e </i>. Se você pretende mostrar os caracteres literais "<i>", eles devem incluir o escape apropriado. Para saber mais sobre os caracteres de escape no XML, veja Entidades de caracteres XML e XAML.
    • Os valores fornecidos para os atributos lang devem estar em conformidade com a especificação ITEF BCP 47.
    • As cadeias de caracteres XML enviadas por meio de notificações por push devem usar a codificação UTF-8.
    • Se você incluir um elemento image à sua carga XML com um atributo src não vazio, deverá incluir uma referência a uma imagem válida ou a notificação será ignorada.

    Para saber mais, veja a documentação Esquemas de blocos, notificações do sistema e selos.

  • Causa: uso indevido dos parâmetros da API de notificação por push

    Correção: consulte a documentação da API no namespace Windows.Networking.PushNotifications para obter detalhes mais específicos.

  • Causa: tipo de cabeçalho não corresponde ao conteúdo da notificação. Se o cabeçalho X-WNS-Type não for definido como um valor —bloco, selo ou notificação do sistema— que corresponda ao modelo de notificação especificado na carga, a notificação não será exibida. Essa incompatibilidade causará um erro no cliente e a notificação será removida.

    Correção: consulte Cabeçalhos de solicitação e resposta do serviço de notificação por push para garantir que o servidor de aplicativos use o valor correto para o cabeçalho X-WNS-Type.

  • Causa: o valor de TTL (vida útil) definido no cabeçalho X-WNS-TTL é muito baixo.

    Correção: especifique um valor de TTL maior, sabendo que ele deve ser indicado em segundos.

Se você ainda não vê sua notificação mesmo depois de endereçar os itens nas etapas anteriores, confira as etapas de solução de problemas de notificações locais na seção A notificação de bloco local não é exibida deste tópico para obter mais sugestões.

A notificação por push retorna um código diferente de "200 OK"

Se o WNS não retornar "200 OK", sua notificação não será entregue ao cliente. Se o código de retorno estiver na casa dos 400, você, como desenvolvedor, poderá corrigir o problema. Para saber mais sobre os significados de códigos específicos, veja Referência de código de resposta dos Serviços de Notificação por Push do Windows (WNS). Para ver exemplos de código que mostram como encontrar e lidar e com esses erros, veja Início rápido: enviando uma notificação por push ou baixe a Amostra de notificações periódicas e por push.

Observação  Para erros não especificamente listados aqui, veja COM Error Codes (WPN, MBN, P2P, Bluetooth).
 

A solicitação de notificação retorna "400 Solicitação Incorreta"

Causa: o uso de um ou mais cabeçalhos do WNS estava incorreto ou a solicitação HTTP era inválida.

Correção: consulte Cabeçalhos de solicitação e resposta do serviço de notificação por push para garantir que o servidor de aplicativos use todos os cabeçalhos personalizados conforme descritos.

A solicitação de notificação retorna "401 Não Autorizado"

Causa: o servidor de aplicativos deve usar a SID (Identificador de Segurança) do Pacote e uma chave secreta dada a você quando o aplicativo foi registrado. Se você alterou recentemente a sua chave secreta no Painel da Windows Store, também será necessário atualizar o servidor de aplicativos. Para saber mais, veja Visão geral sobre notificações por push.

Correção: visite o Painel da Windows Store para conferir a SID do Pacote e o segredo.

A solicitação de notificação retorna "401 Não Autorizado", o token está expirado

Causa: um token de acesso possui um tempo de vida útil finito. Se você enviar uma notificação com um token de acesso expirado, as credenciais do servidor de aplicativos serão inválidas e a notificação não poderá ser enviada.

Correção: solicite um novo token de acesso do WNS fazendo a autenticação no WNS com sua SID (Identificador de Segurança) do Pacote e a chave secreta. Para obter mais informações, veja a Visão geral das notificações dos Serviços de Notificação por Push do Windows (WNS).

A solicitação de notificação retorna "403 Proibido"

Causa: esse erro ocorre quando o token de acesso apresentado não corresponde às credenciais exigidas para enviar as notificações para a URL do canal correspondente. Cada aplicativo deve ser registrado na Windows Store para receber credenciais para o servidor de aplicativos. Para cada aplicativo, somente as credenciais fornecidas pela Windows Store podem ser usadas para enviar notificações para o aplicativo e elas podem ser usadas somente para aquele aplicativo em particular.

Correção: faça logon no Painel da Windows Store com sua conta de desenvolvedor. Selecione o seu aplicativo e clique em "Recursos Avançados" -> "Gerenciar as suas configurações do serviço de nuvem". Selecione "Identificando seu aplicativo" para ler as instruções na atualização do manifesto do seu aplicativo para corresponder às suas credenciais do serviço de nuvem.

A solicitação de notificação retorna "404 Não Encontrado"

Causa: esse erro normalmente significa que a URL do canal não está formada corretamente. A URL do canal nunca deve ser adulterada ou modificada ao enviar uma notificação ao WNS. A URL do canal deve sempre ser tratada como uma cadeia de caracteres opaca — não é preciso que você examine ou até mesmo saiba o seu conteúdo.

Correção: verifique se o seu código não está modificando a URL do canal alterando um ou mais dos seus caracteres ou alterando sua codificação.

A solicitação de notificação retorna "406 Não Aceitável"

Causa: o WNS tem políticas de proteção internas para prevenir que aplicativos mal-intencionados afetem negativamente o serviço para outros usuários e desenvolvedores. Um número excessivo de notificações em um curto período de tempo pode fazer com que o WNS remova as notificações de forma explícita.

Correção: verifique a frequência das suas notificações para ver se ela pode ser reduzida ou otimizada para produzir uma melhor experiência ao usuário.

A solicitação de notificação retorna "410 Não Existe Mais"

Causa: a URL do canal expirou. Nenhuma notificação pode ser enviada até que o seu aplicativo seja executado e solicite uma nova URL de canal.

Correção: o seu aplicativo da Windows Store deve sempre solicitar uma URL de canal ao ser iniciado. A URL de canal que foi atribuída pode não continuar sendo a mesma. Se a URL foi alterada, o cliente deverá atualizar a informação em seu servidor de nuvem. Para saber mais, veja Como solicitar, criar e salvar um canal de notificação.

Erros na tentativa de criar um canal de notificação por push

Observação  Para erros não especificamente listados aqui, veja COM Error Codes (WPN, MBN, P2P, Bluetooth).
 

Criar um canal de notificação resulta em um erro ERROR_NO_NETWORK

Causa: o WNS pede uma conexão com a Internet para criar um canal de notificação.

Correção: verifique a sua conexão com a Internet.

Criar um canal de notificação resulta em um erro WPN_E_CLOUD_INCAPABLE

Causa: o seu aplicativo não declarou o recurso de conexão com a Internet no manifesto do aplicativo (package.appxmanifest).

Correção: verifique se o manifesto do seu aplicativo declarou o recurso de conexão com a Internet. No editor de manifesto do Visual Studio, você encontra essa opção na guia Recursos como Internet (Cliente). Para saber mais, veja Capabilities.

Criar um canal de notificação resulta em um erro WPN_E_INVALID_APP

Causa: o seu aplicativo deve usar um nome de pacote válido. Se você ainda não recebeu um, é possível consegui-lo através do portal da Windows Store em "Recursos Avançados".

Correção: para obter mais detalhes sobre a recuperação de uma PKSID (Identificador de Segurança do Pacote) para o seu aplicativo da Windows Store, veja Como se autenticar no WNS (Serviços de Notificação por Push do Windows).

Solução de problemas de notificações do sistema

Esta seção aborda alguns erros comuns que você pode encontrar ao trabalhar com notificações do sistema e modelos de notificação do sistema. Em grande parte, a maioria das etapas de solução de problemas utilizadas com as notificações do sistema são as mesmas etapas usadas com as notificações de bloco. A menos que especificado o contrário, cada solução aplica-se a todos os tipos de envio de notificação: notificações locais, agendadas ou por push.

A notificação do sistema local não é exibida

O problema mais comum nesta situação é que o XML utilizado para definir a sua notificação está incorreto de alguma forma. Mas há outras causas possíveis, que também são abordadas por estas etapas:

Verificar as configurações do usuário

Causa possível: o usuário ou administrador desabilitou as notificações nas configurações. Verifique a opção global ligar/desligar notificações e as opções ligar/desligar por aplicativo na página Configurações do PC -> Notificações. Para o administrador, há diversas políticas de grupo que podem desabilitar as notificações. Verifique com o administrador para garantir que as notificações sejam habilitadas.

Correção: habilite as notificações nas configurações ou peça para o administrador habilitá-las pela política de grupo.

Para saber mais, veja Guia de início rápido: enviando uma notificação do sistema.

Verificar entradas de manifesto do aplicativo

Causa possível: o manifesto do aplicativo não tinha as informações adequadas definidas para habilitar a entrega da notificação do sistema. Verifique se a configuração "Compatível com Toast" no manifesto do aplicativo está definida como "Sim". Se qualquer conteúdo de notificação, como uma imagem, for recuperado da Internet, verifique se a funcionalidade "Internet (Cliente)" está declarada no manifesto do aplicativo.

Correção: habilite entradas específicas de notificação no manifesto do aplicativo.

Para saber mais, veja Guia de início rápido: criando um bloco padrão usando o editor de manifesto do Visual Studio.

Verificar os tamanhos de suas imagens

Causa possível: as imagens de todas as notificações devem ser menores que 1024 x 1024 pixels e ter menos de 200 KB. Se qualquer imagem na notificação exceder qualquer uma dessas dimensões, a notificação será descartada.

Correção: reduza suas imagens.

Para saber mais, veja Tamanhos de imagens de bloco e notificação do sistema.

Verificar suas URLs

Causa possível: erros de sintaxe da URL.

As imagens nas notificações são fornecidas como uma referência de recurso ou um caminho literal. Se um caminho for usado, ele deverá ser fornecido usando um destes três protocolos:

PrefixoUsoObservações
http:// e https://Imagens armazenadas online

Essas imagens podem ser armazenadas localmente em cache; assim, o servidor de imagens pode não receber uma solicitação para a imagem. As cadeias de caracteres de consulta são anexadas a essas URLs. Verifique se o servidor Web retorna a imagem original, em vez de um 404, quando você ignora a cadeia de caracteres de consulta. Um exemplo de cadeia de caracteres de consulta: ?scale=100&contrast=blk&lang=en-US

Observe que, para recuperar qualquer conteúdo de notificação da Internet, seu aplicativo deve declarar o recurso "Internet (Cliente)" no manifesto do aplicativo.

ms-appx:///Imagens incluídas no pacote do aplicativoO URI aceita barra (/) ou barra invertida (\) para separar pastas em um caminho, mas a maioria das linguagens de programação pede um caractere de escape ao especificar uma barra invertida (\\). Observe que essa referência pede três barras após os dois-pontos.
ms-appdata:///local/Imagens salvas localmente pelo aplicativoEste local corresponde à pasta retornada pela Windows.Storage.ApplicationData.current.localFolder. Os separadores de pastas no caminho devem usar os caracteres de escape (\\). Observe que essa referência pede três barras após os dois-pontos.

 

Observação  O caractere ' /' funciona como um separador em cada tipo de especificação. Recomendamos que você sempre use ' /' em vez de ' \' para evitar confusão inadvertida com caracteres de escape.
 

Exemplos de boa formação:

URL
http://www.contoso.com/icon.jpg
ms-appx:///images/icon.png
ms-appdata:///local/myDrawing.jpg

 

Exemplos de má formação:

URLObservações
http://www.contoso.com\fail.pngUm caminho HTTP deve usar o caractere /. Não use o caractere \.
http:www.contoso.comUm caminho HTTP pede duas barras (//) após os dois-pontos.
"ms-appdata:///local/c:\\images\\Drawing.jpg"Um aplicativo não pode fazer referência a imagens fora do seu armazenamento local.
"ms-appx://images/triangle.png"Use três barras em vez de duas com "ms-appx:".

 

Examinar seus formatos de imagem

Causa possível: as imagens estão em um formato sem suporte.

As notificações só podem usar imagens em formato .png, .jpg/.jpeg ou .gif. O formato da imagem também deve corresponder à sua extensão. Renomear simplesmente um tipo de arquivo incompatível com a extensão permitida não funciona.

A causa mais comum de erros no formato de imagem é a serialização de bitmaps para o armazenamento Windows.Storage.ApplicationData.current.localFolder. Certifique-se de chamar seu formato preferido, senão a imagem será armazenada como um bitmap do Windows, e seu cabeçalho incluirá "BMP".

Para verificar: uma forma de verificar o formato de sua imagem é carregar a sua imagem para um programa de processamento de imagem e salvá-la como .jpg. Se você mencionar este novo arquivo .jpg em sua notificação e o erro não se repetir, provavelmente ocorreu um erro de formato de imagem. Você também pode abrir o arquivo no editor binário do Visual Studio e examinar seu cabeçalho.

Correção: altere ou corrija seus formatos de imagem.

Verificar sua sintaxe XML e conteúdo

Causa possível: erros de sintaxe ou de validação XML.

Além da sintaxe básica, verifique se o seu XML está completo e correto. Alguns pontos comuns de falha no conteúdo XML incluem o seguinte:

  • Diferenciação de maiúsculas e minúsculas. Nomes de marca, nomes de atributo e valores de atributo diferenciam maiúsculas de minúsculas. Verifique se o seu XML tem o uso correto de maiúsculas e minúsculas.
  • As cadeias de caracteres de texto não devem conter caracteres XML reservados. Por exemplo, você não pode aplicar itálico à cadeia de caracteres em uma notificação do sistema, incluindo as marcas <i> e </i>. Se você pretende mostrar os caracteres literais "<i>", eles devem incluir o escape apropriado. Para saber mais sobre os caracteres de escape no XML, veja Entidades de caracteres XML e XAML.
  • Os valores fornecidos para os atributos lang devem estar em conformidade com a especificação ITEF BCP 47.
  • As cadeias de caracteres XML criadas localmente (para notificações locais ou agendadas) devem usar a codificação UTF-16. Quando enviadas através notificações por push ou de uma URL, as cadeias de caracteres devem usar a codificação UTF-8
  • Se você incluir um elemento image à sua carga XML com um atributo src não vazio, deverá incluir uma referência a uma imagem válida ou a notificação falhará.

Você pode usar o Log de Eventos para verificar se há erros quando sua notificação do sistema não for exibida. Procure eventos que envolvam sua notificação do sistema no Visualizador de Eventos, em Aplicativos e Logs de Serviços > Microsoft > Windows > Aplicativos > Microsoft-Windows-TWinUI > Operacional.

Para verificar: use um verificador de sintaxe XML, como o editor do Visual Studio, para procurar erros básicos de sintaxe. Consulte a referência de modelo apropriada (ToastTemplateType) para garantir que você esteja atribuindo o item correto para o elemento certo.

Correção: altere seu XML ou use um modelo diferente de acordo com seu conteúdo.

Verificar se sua notificação não expirou

Causa possível: o vencimento está definido como um valor muito pequeno.

Se você tiver definido o vencimento em sua notificação usando o método expirationTime (para uma notificação local) ou o campo do cabeçalho X-WNS-TTL (em uma notificação por push), verifique se os valores representam milissegundos. Por exemplo, se você quiser que uma notificação do sistema dure exatamente uma hora, o valor deve ser 60 * 60 * 1000 = 3600000.

Correção: use um valor maior.

Relatar um problema

Se você tentou as soluções sugeridas neste tópico e não conseguiu resolver seu problema, poste uma mensagem nos fóruns da Microsoft para discutir o assunto com os desenvolvedores da Microsoft e outras pessoas interessadas.

Para as notificações por push, além da descrição do problema, talvez você tenha que informar a URL de canal e um exemplo da resposta recebida do WNS, incluindo os códigos de erro HTTP e os cabeçalhos HTTP. Existem cabeçalhos específicos que o servidor de aplicativos deve registrar ao relatar um problema. Para saber mais, veja Cabeçalhos de solicitação e resposta do serviço de notificação por push.

Tópicos relacionados

Exemplo de blocos de aplicativo e selos
Exemplo de notificações agendadas
Exemplo de notificações do sistema
Exemplo de notificações por push e periódicas
Guia de início rápido: criando um bloco padrão com o editor de manifesto do Visual Studio
Guia de início rápido: enviando uma atualização de bloco
Guia de início rápido: enviando uma atualização de selo
Guia de início rápido: mostrando notificações na tela de bloqueio
Guia de início rápido: configurando notificações periódicas
O catálogo de modelos de bloco
Como agendar uma notificação de bloco
Como usar a fila de notificação com notificações locais
Esquema XML de blocos
Visão geral de blocos e notificações de bloco
Visão geral do selo
Visão geral da tela de bloqueio
A consulta de notificação
Escolhendo um método de entrega de notificação
Diretrizes para blocos secundários

 

 

Mostrar:
© 2017 Microsoft