Guia de início rápido: enviando uma notificação para um bloco secundário (HTML)

[ 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]

Observação  Não está usando JavaScript? Veja Guia de início rápido: enviando notificações para um bloco secundário (XAML).

 

Este Guia de início rápido mostra como atualizar o bloco secundário de um aplicativo enviando uma notificação local. Você vai ver que enviar uma notificação para um bloco secundário é igual a enviar uma notificação para o bloco principal do aplicativo, com exceção da etapa final. A única diferença entre os dois procedimentos é que, nos blocos secundários, você usa um atualizador de bloco específico a eles (CreateTileUpdaterForSecondaryTile).

Para ver o código apresentado neste tópico usado em um exemplo completo, consulte o Exemplo de blocos secundários. O exemplo é mostrado nas versões em JavaScript, C#, C++ e Visual Basic.

Quando um aplicativo é iniciado, ele deve sempre enumerar seus blocos secundários, caso haja adições ou exclusões das quais ele não estava sabendo. Quando o usuário exclui um bloco secundário, o Windows simplesmente remove o bloco. O próprio aplicativo é responsável por liberar qualquer recurso que tenha sido usado pelo bloco secundário. Quando o Windows copia blocos secundários pela nuvem, as notificações de bloco ou selo atuais no bloco secundário, as notificações agendadas, os canais de notificação por push e os URIs usados com as notificações periódicas não são copiados com os blocos secundários e devem ser redefinidos.

Observação  Neste Guia de início rápido, você vai manipular o conteúdo de notificações diretamente pelo DOM (Document Object Model) XML. Uma abordagem opcional está disponível por meio da biblioteca NotificationsExtensions, que apresenta o conteúdo XML como propriedades de objetos, incluindo o Intellisense. Para saber mais, veja Guia de início rápido: usando a biblioteca NotificationsExtensions em seu código. Para ver o código neste Guia de início rápido expresso com o uso de NotificationsExtensions, leia o Exemplo de blocos secundários.

 

Pré-requisitos

Para compreender este tópico, você precisa de:

Instruções

1. Opcional: declarar uma variável de namespace

Esta etapa fornece a você um nome abreviado para uso no lugar do nome completo do namespace. Isso equivale à instrução "using" em C# ou à instrução "Imports" no Visual Basic. Permite simplificar seu código.

Observação  O restante do código neste Guia de início rápido presume que essa variável tenha sido declarada.

 

var notifications = Windows.UI.Notifications;

2. Recuperar um modelo de bloco em branco

É possível usar qualquer modelo de bloco em um bloco secundário. Aqui, nós usamos o modelo simples somente texto TileWide310x150Text04.


var wideTemplate = notifications.TileTemplateType.tileWide310x150Text04;                       
var tileXml = notifications.TileUpdateManager.getTemplateContent(wideTemplate);

3. Atribuir texto à notificação

O modelo TileWide310x150Text04 inclui um único elemento de texto, ao qual nós atribuímos uma cadeia de caracteres.


var tileTextAttributes = tileXml.getElementsByTagName("text");
tileTextAttributes[0].appendChild(tileXml.createTextNode("This text was delivered through a notification"));

4. Fornecer a versão média da notificação

É uma prática recomendada sempre fornecer um vínculo de cada tamanho de bloco que seu aplicativo permite em qualquer carga de notificação enviada para um bloco. Como parte da operação de fixação, o usuário pode selecionar o tamanho do bloco secundário das opções que você fornecer. Fornecer um vínculo em cada notificação para cada uma das opções de tamanho garante que sua notificação seja exibida, independentemente do tamanho do bloco. Se você também tiver suporte para um bloco secundário grande, repita esta etapa e a seguinte para um dos modelos grandes.

Observação  Todos os blocos, incluindo os blocos secundários, são fixados como blocos médios no Windows Phone 8.1, depois o usuário poderá redimensioná-los.


var squareTemplate = notifications.TileTemplateType.tileSquare150x150Text04;                       
var squareTileXml = notifications.TileUpdateManager.getTemplateContent(squareTemplate);

var squareTileTextAttributes = squareTileXml.getElementsByTagName("text");
squareTileTextAttributes[0].appendChild(squareTileXml.createTextNode("This text was delivered through a notification"));

5. Acrescentar a notificação média à carga da notificação larga

var node = tileXml.importNode(squareTileXml.getElementsByTagName("binding").item(0), true);
tileXml.getElementsByTagName("visual").item(0).appendChild(node);

6. Empacotar o XML final como uma notificação de bloco

var tileNotification = new notifications.TileNotification(tileXml);

7. Criar um atualizador de bloco secundário

Até esta etapa, o processo é o mesmo da notificação de bloco padrão. Nesta etapa, porém, nós usamos o método createTileUpdaterForSecondaryTile, específico dos blocos secundários. Esse método pede a ID exclusiva do bloco secundário de destino. Neste exemplo, nós consideramos que um bloco secundário com uma ID armazenada na variável appbarTileId esteja fixado na tela inicial.

var updater = notifications.TileUpdateManager.createTileUpdaterForSecondaryTile(appbarTileId);

8. Enviar a notificação a um bloco secundário

updater.update(tileNotification);

9. Opcional: atualizando o logotipo do bloco secundário

Inclua uma imagem de logotipo ao criar seu bloco secundário. A imagem de logotipo, chamada assim porque ela normalmente exibe o logotipo de um aplicativo, é a imagem do bloco inteiro exibida no bloco antes de receber notificações. O bloco é revertido para a imagem de logotipo quando a notificação é removida ou expira. Em alguns cenários, convém mudar a imagem de logotipo padrão, talvez para indicar uma alteração no conteúdo fixado, quando você não quiser enviar uma atualização completa da notificação. Esta etapa mostra como mudar o logotipo do bloco secundário com uma ID armazenada na variável appbarTileId, usando uma imagem do armazenamento local do aplicativo. Observe que este exemplo menciona a classe Windows.Foundation.Uri.


var tileToUpdate = new Windows.UI.StartScreen.SecondaryTile("SecondaryTile.01");
var uriUpdatedLogo = new Windows.Foundation.Uri("ms-appdata:///local/NewSecondaryTileDefault.png");
tileToUpdate.logo = uriUpdatedLogo;
tileToUpdate.updateAsync();

Resumo e próximas etapas

Neste Guia de início rápido, você enviou uma notificação para um bloco secundário associado ao seu aplicativo. Você viu que existe apenas uma pequena diferença entre enviar uma notificação para o bloco principal do aplicativo e enviar uma notificação para um de seus blocos secundários. Você também atualizou a imagem de logotipo padrão de seu bloco secundário.

Este Guia de início rápido enviou a atualização de bloco secundário como uma notificação local. Você também pode explorar os outros métodos de entrega de notificações: agendadas, periódicas e por push. Para saber mais, veja Entregando notificações.

Tópicos relacionados

Guia de início rápido: fixando um bloco secundário

Guia de início rápido: enviando uma atualização de bloco

Exemplo de blocos secundários

Visão geral de blocos secundários

Diretrizes e lista de verificação de blocos secundários

Esquema de bloco