Come gestire l'attivazione di file (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Un'app può registrarsi come gestore predefinito per un determinato tipo di file. È possibile registrare sia app desktop sia app di Windows Runtime come gestore di file predefinito. L'app scelta dall'utente come gestore predefinito per un certo tipo di file verrà attivata ogni volta che viene avviato questo tipo di file.

Consigliamo di eseguire la registrazione per un tipo di file solo se prevedi di gestire tutti gli avvii di quel tipo di file. Se la tua app deve usare il tipo di file solo internamente, non è necessario registrarla come gestore predefinito. Se scegli di eseguire la registrazione per un tipo di file, devi fornire all'utente finale la funzionalità prevista quando l'app viene attivata per quel tipo di file. Un'app per la visualizzazione di immagini, ad esempio, può essere registrata per visualizzare file con estensione jpg. Per altre info sulle associazioni di file, vedi Linee guida ed elenco di controllo per tipi di file e URI.

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

Nota  

Nelle app di Windows Phone Store, certi URI ed estensioni di file sono riservati per l'uso nelle app predefinite e nel sistema operativo. Eventuali tentativi di registrare la tua app con URI o estensioni di file riservati verranno ignorati. Per altre informazioni, vedi l'elenco in questa pagina.

Istruzioni

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

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

  1. Fai doppio clic per aprire package.appxmanifest in Esplora soluzioni.

    Vedi l'argomento relativo agli identificatori programmatici per altri dettagli degli identificatori usati dalle associazioni di file. Ecco una breve descrizione di tutti i campi che puoi compilare nel manifesto del pacchetto:

    Campo Descrizione

    Tipo di contenuto

    Specifica 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 di tipi di contenuto MIME che non puoi immettere nel manifesto di pacchetto perché sono riservati o non consentiti: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.

    Nome

    Scegli un nome per un gruppo di tipi di file che condividono il nome visualizzato, il logo, le informazioni descrizione e i flag di modifica. Scegli un nome di gruppo che possa essere mantenuto in eventuali aggiornamenti dell'app.

    Nota  Il nome deve essere tutto in lettere minuscole.
     

    Informazioni descrizione

    Specifica le informazioni descrizione per un gruppo di tipi di file. Il testo di questa descrizione comando appare quando l'utente passa il puntatore sull'icona di un file di questo tipo.

    Modifica flag

    Specifica i flag di modifica per un gruppo di tipi di file. I flag di modifica controllano l'accesso a un file quando viene acquisito da un'origine non attendibile. Il flag OpenIsSafe indica che il verbo Open per il tipo di file può essere richiamato per qualsiasi file scaricato. Il flag AlwaysUnsafe indica che l'opzione per richiamare automaticamente il verbo Open per il tipo di file è disabilitata. L'utente può eseguire l'override di questo attributo nella finestra di dialogo Tipo di file. L'uso di questo flag significa che OpenIsSafe non viene rispettato. Impedisce che la casella di controllo Non chiedere mai venga abilitata nella finestra di dialogo di sicurezza quando si aprono file non attendibili di questo tipo.

    Nome visualizzato

    Specifica il nome visualizzato per un gruppo di tipi di file. Il nome visualizzato viene usato per identificare il tipo di file nella finestra Imposta programmi predefiniti nel Pannello di controllo.

    Logo

    Specifica il logo usato per identificare il tipo di file nel desktop e nella finestra Imposta programmi predefiniti nel Pannello di controllo. Se non viene specificato alcun logo, viene usato il logo piccolo dell'applicazione.

    Tipo di file

    Specifica il tipo di file da registrare, preceduto da un punto, ad esempio, ".jpeg".

    Tipi di file riservati e vietati

    Ecco gli elenchi alfabetici dei tipi di file che non puoi registrare per la tua app perché sono riservati o vietati:

    Nota  

    Per le app di 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

    Nota  

    Per le app di Windows Phone Store

    Windows Phone riserva i tipi di file seguenti alle app predefinite.

    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

    Windows Phone riserva i tipi di file seguenti al sistema operativo.

    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

    Visualizzazione desiderata (solo Windows)

    Utilizza il campo Desired View per specificare la quantità di spazio necessaria alla finestra dell'app quando viene avviata per il tipo di file. I valori possibili per Desired View sono Default, UseLess, UseHalf, UseMore e UseMinimum.

    Nota  Windows tiene conto di tanti fattori diversi nel determinare le dimensioni finali della finestra dell'app di destinazione, ad esempio la preferenza dell'app di origine, il numero di app presenti sullo schermo, l'orientamento dello schermo, ecc.. L'impostazione della Visualizzazione desiderata non garantisce uno specifico comportamento di gestione delle finestre per l'app di destinazione.
     

    Windows 8.1:  L'attributo Desired View è supportato a partire da Windows 8.1 e Windows Server 2012 R2.

    Windows Phone:  L'attributo Desired View non è supportato per Windows Phone.

     

  2. Seleziona la scheda Dichiarazioni.

  3. Seleziona Associazioni tipi file nell'elenco a discesa e fai clic su Aggiungi.

  4. Immetti alsdk in Nome.

  5. Immetti .alsdk in Tipo file.

  6. Immetti "images\Icon.png" come Logo.

  7. Premi CTRL+S per salvare le modifiche a package.appxmanifest.

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

Passaggio 2: Aggiungere le icone appropriate

Le icone delle app che diventano le app predefinite per un tipo di file vengono 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 nel Pannello di controllo
  • Selezione file
  • Risultati di ricerca nella schermata Start

Consigliamo di includere le icone corrette nel progetto in modo che il logo abbia un aspetto ottimale in tutte queste posizioni. Per un'app di Windows Store, includi nella cartella delle immagini versioni a 16/32/48/256 pixel per il logo piccolo e le dimensioni delle icone. Per un'app di Windows Phone Store, includi invece le versioni a 63/129/336 pixel. Fai in modo che l'aspetto del logo del riquadro dell'app corrisponda alla tavolozza di colori definita e che il logo si estenda fino al bordo senza riempimento. Verifica le icone su sfondi bianchi. Per alcuni esempi di icone, vedi l'esempio di avvio di associazione (Windows).

Esplora soluzioni con una visualizzazione dei file nella cartella immagini. Sono versioni a 16, 32, 48 e 256 pixel di Icon.targetsize e smallTile-sdk.

Passaggio 3: Eseguire la registrazione all'evento attivato

Esegui la registrazione all'evento activated per gestire l'attivazione di file.

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

Passaggio 4: Gestire l'evento attivato

Il gestore di eventi activated registrato nel passaggio 1 riceve tutti gli eventi di attivazione. La proprietà kind indica il tipo di evento di attivazione. Questo esempio è impostato per gestire eventi di attivazione 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
   }
}

Nota  

Se avviate tramite il contratto per i file, le app di Windows Phone Store dovrebbero assicurarsi che il pulsante Indietro riporti l'utente alla schermata da cui è stata avviata l'app e non al contenuto precedente dell'app.

È consigliabile che le app creino un nuovo frame XAML per ogni evento di attivazione che apre una nuova pagina. In questo modo, il backstack di navigazione per il nuovo frame XAML non conterrà l'eventuale contenuto precedente presente nella finestra corrente dell'app al momento della sospensione. Le app che decidono di usare un singolo frame XAML per i contratti di avvio e per i file dovrebbero cancellare le pagine nel journal di navigazione del frame prima di passare a una nuova pagina.

Nel caso di app avviate tramite l'attivazione di file, dovresti prendere in considerazione l'aggiunta di un'interfaccia utente che consenta all'utente di tornare alla pagina principale dell'app.

Osservazioni

I file che ricevi potrebbero provenire da una fonte non sicura. Consigliamo di convalidare il contenuto di ogni file prima di usarlo. Per altre info sulla convalida dell'input, vedi Scrittura di codice sicuro.

Esempio completo

Vedi l'esempio di avvio di associazione (Windows).

Argomenti correlati

Concetti

Programmi predefiniti

Modello di associazioni protocollo e tipo di file

Attività

Come avviare l'app predefinita per un file

Come gestire l'attivazione di URI

Linee guida

Linee guida ed elenco di controllo per tipi di file e URI

Riferimento

Windows.Storage.StorageFile

Windows.UI.WebUI.WebUIFileActivatedEventArgs

WinJS.Application.onactivated