Tratar a ativação do arquivo

APIs importantes

Seu aplicativo pode se registrar para se tornar o manipulador padrão para um determinado tipo de arquivo. Os aplicativos da área de trabalho do Windows e os aplicativos da Plataforma Universal do Windows (UWP) podem ser registrados como um manipulador de arquivo padrão. Se o usuário escolher seu aplicativo como o manipulador padrão de um determinado tipo de arquivo, seu aplicativo será ativado quando 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 mais informações sobre associações de arquivos, consulte Diretrizes de tipos de arquivos e URIs.

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

Nota Em aplicativos UWP, determinadas URIs e extensões de arquivo são reservadas para uso por aplicativos internos e pelo sistema operacional. Tentativas de registrar seu aplicativo com um URI ou extensão de arquivo reservada serão ignoradas. Para obter mais informações, consulte Nomes de arquivos e esquemas de URI reservados.

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 seu aplicativo manipula os arquivos com a extensão .alsdk.

  1. No Gerenciador de Soluções, clique duas vezes em package.appxmanifest para abrir o designer de manifesto. Selecione a guia Declarações no menu suspenso Declarações disponíveis, selecione Associações de tipo de arquivo e clique em Adicionar. Consulte Identificadores programáticos para obter mais detalhes sobre os identificadores usados por associações de arquivo.

    Esta é uma breve descrição de cada um dos campos que você pode preencher no designer de manifesto:

Campo Descrição
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.
Dica de informações Especifique a dica de informações para um grupo de tipos de arquivo. O texto dessa dica de ferramenta é exibido quando o usuário passa o mouse sobre o ícone de um arquivo desse tipo.
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 igual entre atualizações de aplicativos. Nota O Nome deve estar em todas as letras minúsculas.
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údo permitidos: esta é uma lista em ordem alfabética dos tipos de conteúdo MIME que você não pode inserir no manifesto do pacote porque eles são reservados ou proibidos: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Tipo de arquivo Especifique o tipo de arquivo para o qual registrar, precedido por um ponto, por exemplo, ".jpeg". Tipos de arquivos reservados e proibidos: consulte Nomes de esquemas de URI e tipos de arquivos reservados para obter uma lista em ordem alfabética dos tipos de arquivo para apps internos para os quais você não pode registrar seus aplicativos UWP porque são reservados ou proibidos.
  1. Insira alsdk como o Nome.
  2. Insira .alsdk como o Tipo de arquivo.
  3. Insira "images\Icon.png" como o Logotipo.
  4. Pressione Ctrl+S para salvar a alteração no package.appxmanifest.

As etapas acima adicionam um elemento Extension semelhante a este ao manifesto do pacote. A categoria windows.fileTypeAssociation indica se o aplicativo manipula arquivos com a extensão .alsdk.

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

Etapa 2: adicionar 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

Inclua um ícone 44x44 com seu projeto para que seu logotipo apareça nesses locais. Combine a aparência do logotipo do bloco do aplicativo e use a cor da tela de fundo do aplicativo em vez de deixar o ícone transparente. Faça o logotipo se estender até a borda sem preenchê-la. Teste seus ícones em telas em segundo plano brancas. Consulte Diretrizes para ativos de bloco e ícone para obter mais detalhes sobre ícones.

Etapa 3: manipular o evento ativado

O manipulador de eventos OnFileActivated recebe todos os eventos de ativação de arquivos.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
      ' TODO: Handle file activation
      ' The number of files received is args.Files.Size
      ' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

Observação

Quando iniciado por meio do Contrato de Arquivo, certifique-se de que o botão Voltar leve o usuário de volta para a tela que iniciou o aplicativo e não para o conteúdo anterior do aplicativo.

Recomendamos que você crie um novo Quadro XAML para cada evento de ativação que abra uma nova página. Dessa forma, o backstack de navegação para o novo Quadro XAML não contém nenhum conteúdo anterior que o aplicativo possa ter na janela atual quando suspenso. Se você decidir usar um único Quadro XAML para Iniciar e para Contratos de Arquivo, desmarque as páginas no diário de navegação do Frame antes de navegar para uma nova página.

Quando seu aplicativo é iniciado por meio da ativação de arquivo, você deve considerar a inclusão da interface do usuário que permite que o usuário volte para a página superior 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.

Exemplo completo

Conceitos

Tarefas

Diretrizes

Referência