Adicionando uma AppBar com comandos (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 ]
Este artigo explica como adicionar uma AppBar ao seu aplicativo do Tempo de Execução do Windows que usa JavaScript. Se você usar os estilos e a marcação padrão mostrados neste exemplo, os comandos que você colocar na AppBar terão o estilo adequado. As sprites de imagens e os glifos de fontes são compatíveis com os ícones dos comandos.
(Somente Windows) Veja este recurso em ação como parte da nossa série de Recursos para aplicativos, do início ao fim. : Interface do usuário de aplicativo da Windows Store, do início ao fim
Pré-requisitos
- Compilando seu primeiro aplicativo em Tempo de Execução do Windows em JavaScript
- Design de comandos para aplicativos em Tempo de Execução do Windows
- Design de navegação para aplicativos em Tempo de Execução do Windows
Instruções
1. Crie um novo projeto usando o modelo de Aplicativo em Branco
Inicie o Microsoft Visual Studio.
Na guia Página Inicial, clique em Novo Projeto. A caixa de diálogo Novo Projeto é aberta.
No painel Instalado, expanda Modelos e JavaScript, e clique no tipo de modelo Aplicativos da Loja. Escolha a plataforma de destino dos (aplicativos universais, aplicativos do Windows ou aplicativos do Windows Phone), mas este guia de início rápido, utilizaremos aplicativos universais.
No painel central, selecione o modelo de projeto Aplicativo em Branco (aplicativos universais) (não clique em OK ainda).
Na caixa de texto Nome, insira AppBar demo.
Clique em OK para criar o projeto.
2. Adicione a definição de AppBar ao projeto.
A AppBar é definida em um arquivo HTML com um arquivo JavaScript correspondente (um para o Windows e outro para o Windows Phone).
Conforme mostrado abaixo e para cada plataforma (ou seja, Windows e Windows Phone), abra default.html e substitua o HTML gerado automaticamente pelo HTML a seguir. A prática recomendada é criar uma AppBar global por aplicativo, e essa AppBar deve ser um filho direto do elemento <body>
. Também é recomendável colocar comandos globais antes de comandos contextuais no DOM para obter o melhor layout quando as pessoas ajustarem seu aplicativo.
Este exemplo adiciona uma AppBar com um comando alinhado à esquerda e três comandos alinhados à direita com um separador entre eles.
Windows — default.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>App_bar_demo.Windows</title>
<!-- WinJS references -->
<link href="//Microsoft.WinJS.2.0/css/ui-dark.css" rel="stylesheet" />
<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>
<!-- App_bar_demo.Windows references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
<script src="/js/appbar.js"></script> <!-- Not part of the stock template. -->
</head>
<body>
<ol>
<li>
To show the AppBar, swipe up from the bottom of the screen, swipe down from
the top of the screen, right-click, or press Windows Logo + Z.
</li>
<li>
Click or tap one of the following AppBar buttons: <strong>Camera</strong>,
<strong>Add</strong>, <strong>Remove</strong>, or <strong>Delete</strong>
</li>
<li>
To dismiss the AppBar, click or tap in the application, swipe, right-click,
or press Windows Logo + Z again.
</li>
</ol>
<!-- BEGINTEMPLATE: Template code for an AppBar -->
<div id="appBar" data-win-control="WinJS.UI.AppBar" data-win-options="">
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdAdd', label:'Add', icon:'add', section:'primary', tooltip:'Add item'}"></button>
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdRemove', label:'Remove', icon:'remove', section:'primary', tooltip:'Remove item'}"></button>
<hr data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{type:'separator',section:'primary'}" /> <!-- SEPARATOR NOT AVAILABLE ON PHONE prior to WinJS 4.0 -->
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdDelete', label:'Delete', icon:'delete', section:'primary', tooltip:'Delete item'}"></button>
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdCamera', label:'Camera', icon:'camera', section:'secondary', tooltip:'Take a picture'}"></button>
</div>
<!-- ENDTEMPLATE -->
<div id="statusMessage"></div>
</body>
</html>
Cuidado O bloco de código de exemplo a seguir é válido somente para o Windows Phone até a versão 2.1. Ao usar o WinJS 4.0 e superior, a abordagem correta é usar o mesmo código HTML da AppBar para aplicativos do Windows e do Windows Phone.
Somente Windows Phone 2.1 - default.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>App_bar_demo.WindowsPhone</title>
<!-- WinJS references -->
<!-- At runtime, ui-themed.css resolves to ui-themed.light.css or ui-themed.dark.css
based on the user’s theme setting. This is part of the MRT resource loading functionality. -->
<link href="/css/ui-themed.css" rel="stylesheet" />
<script src="//Microsoft.Phone.WinJS.2.1/js/base.js"></script>
<script src="//Microsoft.Phone.WinJS.2.1/js/ui.js"></script>
<!-- App_bar_demo.Phone references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
<script src="/js/appbar.js"></script> <!-- Not part of the stock template. -->
</head>
<body class="phone">
<p>
Tap the Add, Remove, or Delete AppBar button, or swipe the ellipsis and tap the Camera AppBar button.
</p>
<!-- BEGINTEMPLATE: Template code for an AppBar -->
<div id="appBar" data-win-control="WinJS.UI.AppBar" data-win-options="">
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdAdd', label:'Add', icon:'add', section:'primary', tooltip:'Add item'}"></button>
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdRemove', label:'Remove', icon:'remove', section:'primary', tooltip:'Remove item'}"></button>
<!-- <hr data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{type:'separator',section:'primary'}" /> SEPARATOR NOT AVAILABLE ON PHONE -->
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdDelete', label:'Delete', icon:'delete', section:'primary', tooltip:'Delete item'}"></button>
<button data-win-control="WinJS.UI.AppBarCommand"
data-win-options="{id:'cmdCamera', label:'Camera', icon:'camera', section:'secondary', tooltip:'Take a picture'}"></button>
</div>
<!-- ENDTEMPLATE -->
<div id="statusMessage"></div>
</body>
</html>
Adicione o arquivo Appbar.js
- No Gerenciador de Soluções, clique com o botão direito do mouse na pasta js, aponte para Adicionar e clique em Novo item.
- No painel Instalado, expanda o JavaScript, clique em Arquivo JavaScript no painel central da caixa de diálogo.
- Na caixa de texto nome (perto da parte inferior da caixa de diálogo), insira Appbar.js.
- Clique em Adicionar para criar o arquivo e adicioná-lo ao projeto.
Abra Appbar.js (se necessário) e adicione o código a seguir.
(function () {
"use strict";
WinJS.UI.Pages.define("default.html", {
ready: function (element, options) {
// Use element.querySelector() instead of document.getElementById() to ensure that the correct default.html page is targeted:
element.querySelector("#cmdAdd").addEventListener("click", doClickAdd, false);
element.querySelector("#cmdRemove").addEventListener("click", doClickRemove, false);
element.querySelector("#cmdDelete").addEventListener("click", doClickDelete, false);
element.querySelector("#cmdCamera").addEventListener("click", doClickCamera, false);
}
});
// Command button functions
function doClickAdd() {
WinJS.log && WinJS.log("Add button pressed", "status");
}
function doClickRemove() {
WinJS.log && WinJS.log("Remove button pressed", "status");
}
function doClickDelete() {
WinJS.log && WinJS.log("Delete button pressed", "status");
}
function doClickCamera() {
WinJS.log && WinJS.log("Camera button pressed", "status");
}
WinJS.log = function (message, messageType) {
var statusDiv = document.getElementById("statusMessage"); // For a multi-page app, always ensure that each element ID is unique (across all pages).
if (statusDiv && messageType === "status") {
statusDiv.innerText = "STATUS: " + message;
}
};
})();
O arquivo Appbar.js é injetado nos dois arquivos default.html através da marcação <script src="/js/appbar.js"></script>
.
3. Notas para desenvolvedor
- Você só pode usar AppBarCommands em uma AppBar. Para obter uma lista dos ícones disponíveis para uso, veja a enumeração AppBarIcon.
- AppBar é uma sobreposição com light dismiss, o que significa que ela sempre cobrirá alguma parte da tela.
- A AppBar, assim como todas as sobreposições com light dismiss, deve sempre ser um filho direto do elemento <body>.
- Para atenuar a natureza de uma sobreposição de AppBar para cobrir outro conteúdo da tela, reserve espaço na parte superior ou inferior da tela para a AppBar closed. Dessa forma, somente a AppBar opened cobrirá outro conteúdo.
- A altura da AppBar fechada pode ser controlada com sua propriedade closedDisplayMode.
- A posição superior ou inferior da AppBar é controlada pela sua propriedade placement.
Resumo
Neste guia de início rápido, você adicionou uma AppBar ao seu aplicativo.