Condividi tramite


Gestire l'attivazione di file

API importanti

L'app può registrarsi per diventare il gestore predefinito per un determinato tipo di file. Sia le applicazioni desktop di Windows che le app piattaforma UWP (Universal Windows Platform) possono essere registrate come gestore di file predefinito. Se l'utente sceglie l'app come gestore predefinito per un determinato tipo di file, l'app verrà attivata all'avvio di quel tipo di file.

È consigliabile eseguire la registrazione solo per un tipo di file se si prevede di gestire tutti i lanci di file per quel tipo di file. Se l'app deve usare solo il tipo di file internamente, non è necessario eseguire la registrazione per essere il gestore predefinito. Se si sceglie di eseguire la registrazione per un tipo di file, si deve fornire all'utente finale la funzionalità prevista quando l'app viene attivata per quel tipo di file. Ad esempio, un'app visualizzatore immagini può registrarsi per visualizzare un file .jpg. Per altre informazioni sulle associazioni di file, vedere Linee guida per i tipi di file e gli URI.

Questi passaggi illustrano come eseguire la registrazione per un tipo di file personalizzato, con estensione alsdk e come attivare l'app quando l'utente avvia un file con estensione alsdk.

Nota Nelle app UWP alcuni URI ed estensioni di file sono riservati per l'uso da parte di app predefinite e del sistema operativo. I tentativi di registrare l'app con un URI o un'estensione di file riservata verranno ignorati. Per maggiori informazioni, vedere Nomi di schemi URI e file riservati.

Passaggio 1: Specificare il punto di estensione nel manifesto del pacchetto

L'app riceve gli eventi di attivazione solo per le estensioni di file elencate nel manifesto del pacchetto. Ecco come indicare che l'app gestisce i file con l'estensione .alsdk.

  1. In Esplora soluzioni fare doppio clic su package.appxmanifest per aprire il designer del manifesto. Selezionare la scheda Dichiarazioni e nel menu a discesa Dichiarazioni disponibili selezionare Associazioni del tipo di file e fare clic su Aggiungi. Per maggiori dettagli sugli identificatori usati dalle associazioni di file, vedere Identificatori programmatici.

    Ecco una breve descrizione di ognuno dei campi che è possibile compilare nella finestra di progettazione del manifesto:

Campo Descrzione
Nome visualizzato Specificare il nome visualizzato per un gruppo di tipi di file. Il nome visualizzato viene usato per identificare il tipo di file in Impostazione dei programmi predefiniti nel Pannello di controllo.
Logo Specificare il logo utilizzato per identificare il tipo di file sul desktop e in Imposta programmi predefiniti nel Pannello di controllo. Se non viene specificato alcun Logo, viene usato il logo piccolo dell'applicazione.
Info Tip Specificare la descrizione informativa per un gruppo di tipi di file. Questo testo della descrizione del comando viene visualizzato quando l'utente passa il puntatore del mouse sull'icona per un file di questo tipo.
Nome Scegliere un nome per un gruppo di tipi di file che condividono lo stesso nome visualizzato, logo, descrizione informativa e flag di modifica. Scegliere un nome di gruppo che può rimanere invariato tra gli aggiornamenti dell'app. Nota Il nome deve essere in lettere minuscole.
Tipo di contenuto Specificare il tipo di contenuto MIME, ad esempio image/jpeg, per un particolare tipo di file. Nota importante sui tipi di contenuto consentiti: ecco un elenco alfabetico dei tipi di contenuto MIME che non è possibile immettere nel manifesto del pacchetto perché sono riservati o non consentiti: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Tipo di file Specificare il tipo di file da registrare, preceduto da un punto, ad esempio ".jpeg". Tipi di file riservati e non consentiti: Vedere Nomi di schemi URI riservati e tipi di file per un elenco alfabetico di tipi di file per app integrate che non si possono registrare per le app UWP perché sono riservate o non consentite.
  1. Immettere alsdk in Nome.
  2. Immettere .alsdk come Tipo di file.
  3. Immettere "images\Icon.png" come logo.
  4. Premere CTRL+S per salvare la modifica in package.appxmanifest.

I passaggi precedenti aggiungono un elemento Extension come questo al manifesto del pacchetto. La categoria windows.fileTypeAssociation indica che l'app gestisce i file con estensione .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>

Passaggio 2: Aggiungere le icone appropriate

Le app che diventano l'impostazione predefinita per un tipo di file hanno le icone visualizzate in varie posizioni nel sistema. Ad esempio, queste icone sono visualizzate in:

  • Visualizzazione elementi di Esplora risorse, menu di scelta rapida e barra multifunzione
  • Programmi predefiniti Pannello di controllo
  • Selezione file
  • Risultati della ricerca nella schermata Start

Includere un'icona 44x44 con il progetto in modo che il logo possa essere visualizzato in tali posizioni. Trovare la corrispondenza con l'aspetto del logo del riquadro dell'app e usare il colore di sfondo dell'app invece di rendere trasparente l'icona. Fare in modo che il logo si estenda al bordo senza riempimento. Testare le icone su sfondi bianchi. Per maggiori informazioni sulle icone, vedere Linee guida per asset di riquadri e icone.

Passaggio 3: Gestire l'evento attivato

Il gestore eventi OnFileActivated riceve tutti gli eventi di attivazione file.

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
}

Nota

Quando viene avviato tramite contratto file, assicurarsi che il pulsante Indietro riporti l'utente alla schermata che ha avviato l'app e non al contenuto precedente dell'app.

È consigliabile creare un nuovo Frame XAML per ogni evento di attivazione che apre una nuova pagina. In questo modo, il backstack di spostamento per il nuovo Frame XAML non contiene alcun contenuto precedente che l'app potrebbe avere nella finestra corrente quando è sospesa. Se si decide di usare un singolo frame XAML per l'avvio e per i contratti file, è necessario cancellare le pagine nel giornale di navigazione del Frame prima di passare a una nuova pagina.

Quando l'app viene avviata tramite l'attivazione del file, si deve prendere in considerazione l'inclusione dell'interfaccia utente che consente all'utente di tornare alla pagina superiore dell'app.

Osservazioni:

I file ricevuti possono provenire da un'origine non attendibile. È consigliabile convalidare il contenuto di un file prima di intervenire su di esso.

Esempio completo

Concetti

Attività

Linee guida

Riferimento