Como manipular a ativação de arquivo (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]

Um aplicativo pode se registrar para ser o manipulador padrão de um determinado tipo de arquivo. Tanto os aplicativos do Tempo de Execução do Windows quanto os aplicativos da área de trabalho podem se registrar para ser um manipulador de arquivos padrão. Se o usuário escolher seu aplicativo como o manipulador padrão de um determinado tipo de arquivo, seu aplicativo será ativado toda vez que esse tipo de arquivo for iniciado.

Recomendamos que você só se registre para um tipo de arquivo se quiser manipular todas as inicializações desse tipo de arquivo. Se o seu aplicativo precisar usar o tipo de arquivo apenas internamente, então você não precisará se registrar para ser o manipulador padrão. Se você decidir se registrar para um tipo de arquivo, você deve fornecer ao usuário a funcionalidade esperada quando o seu aplicativo é ativado para esse tipo de arquivo. Por exemplo, um aplicativo de visualização de imagens pode se registrar para exibir um arquivo .jpg. Para saber mais sobre associações de arquivos, veja Diretrizes e lista de verificação para tipos de arquivos e URIs.

Essas etapas mostram como registrar um tipo de arquivo personalizado, o alsdk, e como ativar seu aplicativo quando o usuário inicia um arquivo .alsdk.

Observação  

Nos aplicativos da Loja do Windows Phone, determinados URIs e extensões de arquivo são reservados para uso por aplicativos nativos e pelo sistema operacional. Tentativas de registrar seu aplicativo com um URI ou extensão de arquivo reservada serão ignoradas. Para saber mais, consulte a lista nesta página.

Instruções

Etapa 1: Especificar o ponto de extensão no manifesto do pacote

O aplicativo recebe os eventos de ativação somente para as extensões de arquivo listadas no manifesto do pacote. Veja como indicar se o aplicativo manipula os arquivos com a extensão .alsdk.

  1. Clique duas vezes para abrir package.appxmanifest no Gerenciador de Soluções.

    Veja Identificadores programáticos para obter mais detalhes sobre os identificadores usados pelas associações de arquivos. Veja uma breve descrição de cada um dos campos que devem ser preenchidos no manifesto do pacote:

    Campo Descrição

    Tipo de Conteúdo

    Especifique o tipo de conteúdo MIME, como image/jpeg, para um tipo de arquivo específico.

    Observação importante sobre tipos de conteúdos permitidos:  Esta é uma lista alfabética dos tipos de conteúdo MIME que você não poderá inserir no manifesto do pacote, porque serem reservados ou proibidos: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.

    Nome

    Escolha o nome de um grupo de tipos de arquivos que compartilham o mesmo nome de exibição, logotipo, dica de informações e sinalizadores de edição. Escolha um nome de grupo que se mantenha nas atualizações de aplicativos.

    Observação  O nome tem que ser todo com letras minúsculas.
     

    Dica de Informação

    Especifique a dica de informação para um grupo de tipos de arquivos. Esse texto da dica de ferramenta é exibido quando o usuário passa o mouse sobre o ícone de um arquivo desse tipo.

    Sinalizadores de Edição

    Especifique os sinalizadores de edição para um grupo de tipos de arquivos. Os sinalizadores de edição controlam como um arquivo é acessado quando é adquirido de uma fonte não confiável. O sinalizador OpenIsSafe indica que o verbo Open para o tipo de arquivo pode ser chamado com segurança para qualquer arquivo baixado. O sinalizador AlwaysUnsafe indica que a opção de chamar automaticamente o verbo Open para o tipo de arquivo está desabilitada. O usuário pode substituir esse atributo por meio da caixa de diálogo Tipo de Arquivo. O uso desse sinalizador significa que OpenIsSafe não é respeitado. Isso evita a habilitação da caixa de verificação Não perguntar novamente na caixa de diálogo de segurança ao abrir arquivos não confiáveis deste tipo.

    Nome de Exibição

    Especifique o nome de exibição para um grupo de tipos de arquivos. O nome de exibição é usado para identificar o tipo de arquivo em Definir Programas Padrão no Painel de Controle.

    Logotipo

    Especifique o logotipo que é usado para identificar o tipo de arquivo na área de trabalho e em Definir Programas Padrão no Painel de Controle. Se nenhum logotipo for especificado, o logotipo pequeno do aplicativo será usado.

    Tipo de arquivo

    Especifique o tipo de arquivo a ser registrado, precedido por um ponto, por exemplo, ".jpeg".

    Tipos de arquivos reservados e proibidos

    Aqui estão listas alfabéticas de tipos de arquivos que você não pode registrar para seu aplicativo por serem reservados ou proibidos:

    Observação  

    Para aplicativos da Windows Store

    Accountpicture-ms, Appx, application, Appref-ms, Bat, Cer, Chm, Cmd, Com, Cpl, crt, dll, drv, Exe, fon, gadget, Hlp, Hta, Inf ,Ins, jse, lnk, Msi, Msp, ocx, pif, Ps1, Reg, Scf, Scr, Shb, Shs, Sys, ttf, url, Vbe, Vbs, Ws, Wsc, Wsf, Wsh

    Observação  

    Para aplicativos da Windows Phone Store

    O Windows Phone reserva os seguintes tipos de arquivos para aplicativos internos.

    aac, aetx, asf, bmp, cer, dotm, dotx, gif, hdp, htm, html, ico, icon, jpeg, jpg, jxr, m4a, m4rm, m4v, mov, mp3, mp4, one, onetoc2, p7b, pem, png, pptm, pptx, qcp, rtf, tif, tiff, txt, url, vcf, wav, wdp, wmv, xap, xht, xhtml, xltm, xltx, xml, xsl, zip

    O Windows Phone reserva os seguintes tipos de arquivos para o sistema operacional.

    ade, adp, app, application, apprefms, asp, bas, bat, cab, chm, cmd, cnt, com, cpf, cpl, crd, crds, crt, csh, der, dll, exe, fxp, gadget, grp, hlp, hme, hpj, hta, inf, ins, isp, its, jar, js, jse, ksh, lnk, mad, maf, mag, mam, maq, mar, mas, mat, mau, mav, maw, mcf, mda, mdb, mde, mdt, mdw, mdz, msc, msh, msh1, msh1xml, msh2, msh2xml, mshxml, msi, msp, mst, msu, ops, pcd, pif, pl, plg, plsc, prf, prg, printerexport, provxml, ps1, ps1xml, ps2, ps2xml, psc1, psc2, psm1, pst, pvw, py, pyc, pyo, rb, rbw, rdp, reg, rgu, scf, scr, shb, shs, theme, tmp, tsk, url, vb, vbe, vbp, vbs, vhd, vhdx, vsmacros, vsw, webpnp, ws, wsc, wsf, wsh, xaml, xdp, xip, xnk

    Exibição Desejada (somente Windows)

    Especifique o campo Desired View para indicar a quantidade de espaço que a janela do aplicativo precisa para ser iniciada para o tipo de arquivo. Os valores possíveis para Desired View são Default, UseLess, UseHalf, UseMore ou UseMinimum.

    Observação  O Windows leva em conta vários fatores diferentes para determinar o tamanho da janela final do aplicativo de destino, por exemplo, a preferência do aplicativo de origem, o número de aplicativos na tela, a orientação da tela e assim por diante. A definição de Modo de Exibição Desejado não garante um comportamento de janelas específico para o aplicativo de destino.
     

    Windows 8.1:  Desired View não é suportado até o Windows 8.1 e Windows Server 2012 R2.

    Windows Phone:  Desired View não é suportado no Windows Phone.

     

  2. Selecione a guia Declarações.

  3. Selecione Associações de Tipo de Arquivo na lista suspensa e clique em Adicionar.

  4. Insira alsdk como o Nome.

  5. Insira .alsdk como o Tipo de Arquivo.

  6. Insira “images\Icon.png” como o Logotipo.

  7. Pressione Ctrl+S para salvar a alteração para package.appxmanifest.

Isto adiciona ao manifesto do pacote um elemento Extension similar a este. A categoria windows.fileTypeAssociation indica se o aplicativo manipula arquivos com a extensão .alsdk.

<Package xmlns="https://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="https://schemas.microsoft.com/appx/2013/manifest">
   <Applications>
      <Application Id="AutoLaunch.App">
         <Extensions>
            <Extension Category="windows.fileTypeAssociation">
                <FileTypeAssociation Name="alsdk">
                  <DisplayName>SDK Sample File Type</DisplayName>
                  <Logo>images\logo.png</Logo>
                  <InfoTip>SDK Sample tip </InfoTip>
                  <EditFlags OpenIsSafe="true" />
                  <SupportedFileTypes>
                     <FileType ContentType="image/jpeg">.alsdk</FileType>
                  </SupportedFileTypes>
               </FileTypeAssociation>
            </Extension>
         </Extensions>
      </Application>
   </Applications>
</Package>

Etapa 2: Adicione os ícones apropriados

Os aplicativos que se tornam padrão para um tipo de arquivo têm seus ícones exibidos em vários lugares em todo o sistema. Por exemplo, esses ícones são mostrados nos seguintes locais:

  • No Modo de Exibição de Itens do Windows Explorer, em menus de contexto e na Faixa de Opções
  • No Painel de Controle de programas padrão
  • Seletor de arquivos
  • Nos Resultados da pesquisa na tela inicial

Recomendamos que você inclua no seu projeto os ícones apropriados para que seu logotipo fique legal em todos esses locais. Para um aplicativo da Windows Store, inclua na sua pasta de imagens tamanhos de logotipos e ícones pequenos de 16/32/48/256 pixels. Para um aplicativo da Loja do Windows Phone, inclua versões de 63/129/336 pixels. Combine a aparência do logotipo do bloco do aplicativo com a paleta de cores incorporada e faça o logotipo se estender para a borda sem preenchê-la. Teste seus ícones em telas segundo plano brancas. Para ícones de exemplo, veja a Amostra de lançamento de associação (Windows).

O Gerenciador de Soluções com uma exibição dos arquivos na pasta de imagens. Existem versões de 16, 32, 48 e 256 pixels de ‘Icon.targetsize’ e ‘smallTile-sdk’

Etapa 3: Registrar-se para o evento ativado

Registre-se no evento activated para manipular a ativação do arquivo.

WinJS.Application.addEventListener("activated", onActivatedHandler, false);

Etapa 4: Manipular o evento ativado

O manipulador de eventos activated registrado na etapa 1 recebe todos os eventos de ativação. A propriedade kind indica o tipo de evento de ativação. Este exemplo é configurado para manipular os eventos de ativação file.

function onActivatedHandler(eventArgs) {
   if (eventArgs.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.file) 
   {
       // TODO: Handle file activation.

       // The number of files received is eventArgs.detail.files.size
       // The first file is eventArgs.detail.files[0].name
   }
}

Observação  

Quando iniciado por Contrato de Arquivo, os aplicativos da Loja do Windows Phone devem assegurar que o botão Voltar leve o usuário de volta à tela que iniciou o aplicativo e ao conteúdo anterior do aplicativo.

É recomendado que os aplicativos criem um novo Quadro XAML para cada evento de ativação que abre uma nova página. Dessa forma, o backstack de navegação do novo Quadro XAML não terá nenhum conteúdo anterior que o aplicativo possa ter na janela atual quando suspenso. Aplicativos que decidem usar um único Quadro XAML para contratos de Ativação e Arquivo devem limpar as páginas do diário de navegação do Quadro antes de navegar para uma nova página.

Quando iniciado por ativação de Arquivo, os aplicativos devem considerar incluir uma interface do usuário que permita ao usuário voltar para o início da página do aplicativo.

Comentários

Os arquivos recebidos podem vir de uma fonte não confiável. Recomendamos que você valide o conteúdo de um arquivo antes de processá-lo. Para obter mais informações sobre a validação de entrada, veja Escrevendo código seguro.

Exemplo completo

Consulte Amostra de lançamento de associação (Windows).

Tópicos relacionados

Conceitos

Programas Padrão

Tipo de Arquivo e Modelo de Associações de Protocolo

Tarefas

Como iniciar o aplicativo padrão para um arquivo

Como manipular a ativação de URI

Diretrizes

Diretrizes e lista de verificação para tipos de arquivos e URIs

Referência

Windows.Storage.StorageFile

Windows.UI.WebUI.WebUIFileActivatedEventArgs

WinJS.Application.onactivated