So wird’s gemacht: Behandeln der Dateiaktivierung (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Eine App kann als Standardhandler für einen bestimmten Dateityp registriert werden. Sowohl Desktop-Apps als auch Windows-Runtime-Apps können als Standardhandler für Dateien registriert werden. Wenn Ihre App vom Benutzer als Standardhandler für einen bestimmten Dateityp ausgewählt wird, wird sie immer dann aktiviert, wenn der Dateityp gestartet wird.

Wir empfehlen, die Registrierung für einen Dateityp nur durchzuführen, wenn davon auszugehen ist, dass alle entsprechenden Vorgänge für einen bestimmten Dateityp verarbeitet werden. Wenn der Dateityp von Ihrer App nur intern verwendet wird, ist die Registrierung eines Standardhandlers nicht erforderlich. Wenn Sie sich entscheiden, die Registrierung für eine bestimmten Dateityp durchzuführen, müssen Sie die entsprechenden Funktionen bereitstellen, die vom Benutzer bei der Aktivierung für diesen Dateityp erwartet werden. Beispielsweise kann eine Bildanzeige-App für das Anzeigen des Dateityps JPG registriert werden. Weitere Informationen zu Dateizuordnungen finden Sie unter Richtlinien und Prüflisten für Dateitypen und URIs.

Die folgenden Schritte zeigen, wie Sie den benutzerdefinierten Dateityp ".alsdk" registrieren und Ihre App aktivieren, wenn der Benutzer eine ALSDK-Datei startet.

Hinweis  

In Windows Phone Store-Apps sind bestimmte URIs und Dateierweiterungen für die Verwendung durch vorinstallierte Apps und das Betriebssystem reserviert. Versuche, die App mit einem reservierten URI oder einer reservierten Dateierweiterung zu registrieren, werden ignoriert. Weitere Informationen finden Sie in der Liste auf dieser Seite.

Anweisungen

Schritt 1: Angeben des Erweiterungspunkts im Paketmanifest

Die App empfängt nur für die im Paketmanifest angegebenen Dateierweiterungen Aktivierungsereignisse. Im Folgenden wird beschrieben, wie Sie festlegen, dass die App Dateien mit der Erweiterung .alsdk behandelt.

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei package.appxmanifest, um sie zu öffnen.

    Ausführliche Informationen zu Bezeichnern, die von Dateizuordnungen verwendet werden, finden Sie unter ProgIDs. Es folgt eine kurze Beschreibung der Felder, die Sie im Paketmanifest ausfüllen können:

    Feld Beschreibung

    Inhaltstyp

    Geben Sie den MIME-Inhaltstyp, z. B. image/jpeg, für einen bestimmten Dateityp an.

    Wichtiger Hinweis zu zulässigen Inhaltstypen::  Dies ist eine alphabetische Liste der MIME-Inhaltstypen, die Sie nicht in das Paketmanifest eingeben können, da sie entweder reserviert oder unzulässig sind: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.

    Name

    Wählen Sie einen Namen für eine Gruppe von Dateitypen aus, die identische Anzeigenamen, Logos, Infotipps und Bearbeitungsflags verwenden. Wählen Sie einen Gruppennamen aus, der auch nach App-Updates unverändert bleiben kann.

    Hinweis  Der Name darf nur aus Kleinbuchstaben bestehen.
     

    Infotipp

    Geben Sie den Infotipp für eine Gruppe von Dateitypen an. Diese QuickInfo wird angezeigt, wenn Benutzer mit der Maus auf das Symbol für eine Datei dieses Typs zeigen.

    Bearbeitungsflags

    Geben Sie die Bearbeitungsflags für eine Gruppe von Dateitypen an. Mit den Bearbeitungsflags wird gesteuert, wie auf eine Datei zugegriffen wird, wenn sie über eine nicht vertrauenswürdige Quelle beschafft wird. Mit dem Flag OpenIsSafe wird angegeben, dass das Verb Open für den Dateityp für alle heruntergeladenen Dateien sicher aufgerufen werden kann. Das Flag AlwaysUnsafe zeigt an, dass die Option zum automatischen Aufrufen des Verbs Open für den Dateityp deaktiviert ist. Benutzer können dieses Attribut im Dialogfeld "Dateityp" überschreiben. Wenn Sie dieses Flag verwenden, bedeutet dies, dass OpenIsSafe nicht respektiert wird. So wird verhindert, dass beim Öffnen von nicht vertrauenswürdigen Dateien dieses Typs im Sicherheitsdialog das Kontrollkästchen Nicht mehr fragen angeboten wird.

    Anzeigename

    Geben Sie den Anzeigenamen für eine Gruppe von Dateitypen an. Anhand des Anzeigenamens wird in der Systemsteuerung unter Standardprogramme festlegen der Dateityp identifiziert.

    Logo

    Geben Sie das Logo zur Identifikation des Dateityps auf dem Desktop in der Systemsteuerung unter Standardprogramme festlegen an. Wenn kein Logo angegeben wird, wird das kleine Logo der Anwendung verwendet.

    Dateityp

    Geben Sie den Dateityp, für den die Registrierung durchgeführt werden soll, mit einem vorangestellten Punkt an, z. B. ".jpeg".

    Reservierte und verbotene Dateitypen

    Es folgen alphabetische Listen mit Dateitypen, die Sie nicht für Ihre App registrieren können, weil sie reserviert oder unzulässig sind:

    Hinweis  

    Für Windows Store-Apps

    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

    Hinweis  

    Für Windows Phone Store-Apps

    Unter Windows Phone sind die folgenden Dateitypen für integrierte Apps reserviert:

    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

    Unter Windows Phone sind die folgenden Dateitypen für das Betriebssystem reserviert:

    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

    Gewünschte Ansicht (nur Windows)

    Verwenden Sie das Feld Desired View, um anzugeben, wie viel Platz für das Fenster der App benötigt wird, wenn es für den Dateityp gestartet wird. Die möglichen Werte für Desired View sind Default, UseLess, UseHalf, UseMore oder UseMinimum.

    Hinweis  Windows bestimmt die endgültige Fenstergröße einer Ziel-App anhand zahlreicher Faktoren (z. B. die Einstellung der Quell-App, die Anzahl der Apps auf dem Bildschirm, die Bildschirmausrichtung, uvm.). Das Festlegen von Gewünschte Ansicht ist keine Garantie, dass das Fenster für die Ziel-App auch wirklich so angezeigt wird.
     

    Windows 8.1:  Desired View wird erst ab Windows 8.1 und Windows Server 2012 R2 unterstützt.

    Windows Phone:  Desired View wird nicht für Windows Phone unterstützt.

     

  2. Klicken Sie auf die Registerkarte Deklarationen.

  3. Wählen Sie in der Dropdownliste Dateitypzuordnungen aus, und klicken Sie auf Hinzufügen.

  4. Geben Sie alsdk in das Feld Name ein.

  5. Geben Sie .alsdk als Dateityp ein.

  6. Geben Sie als Logo "images\Icon.png" ein.

  7. Drücken Sie STRG+S, um die an package.appxmanifest vorgenommenen Änderungen zu speichern.

Dadurch wird dem Paketmanifest ein Extension-Element wie das unten dargestellte hinzugefügt. Die windows.fileTypeAssociation-Kategorie gibt an, dass die App Dateien mit der Erweiterung .alsdk behandelt.

<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>

Schritt 2: Hinzufügen der geeigneten Symbole

Die Symbole von Apps, die für einen Dateityp zum Standard werden, werden an verschiedenen Stellen innerhalb des Systems angezeigt. Diese Symbole werden z. B. an folgenden Stellen angezeigt:

  • ItemsView von Windows Explorer, Kontextmenüs, Menüband
  • Standardprogramme in der Systemsteuerung
  • Dateiauswahl
  • Suchergebnisse auf dem Startbildschirm

Wir empfehlen, die richtigen Symbole in das Projekt aufzunehmen, damit Ihr Logo an allen diesen Stellen gut aussieht. Fügen Sie bei Windows Store-Apps im Bildordner kleine Logo- und Symbolgrößen von 16/32/48/256 Pixeln hinzu. Bei Windows Phone Store-Apps binden Sie Versionen mit 63/129/336 Pixeln ein. Stimmen Sie das Erscheinungsbild des App-Kachel-Logos auf die angepasste Farbpalette ab und erweitern Sie das Logo bis zum Rand, ohne eine Auffüllung vorzunehmen. Testen Sie Ihre Symbole auf weißem Hintergrund. Beispielsymbole finden Sie unter Beispiel für Assoziationsstart (Windows).

Der Projektmappen-Explorer mit einer Ansicht der Dateien im Bildordner. Es gibt Versionen mit 16, 32, 48 und 256 Pixeln für "Icon.targetsize" und "smallTile-sdk"

Schritt 3: Registrieren für das activated-Ereignis

Führen Sie die Registrierung für das activated-Ereignis aus, um die Dateiaktivierung zu behandeln.

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

Schritt 4: Behandeln des activated-Ereignisses

Der in Schritt 1 registrierte activated-Ereignishandler empfängt alle Aktivierungsereignisse. Die kind-Eigenschaft gibt den Typ des Aktivierungsereignisses an. In diesem Beispiel werden file-Aktivierungsereignisse behandelt.

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
   }
}

Hinweis  

Bei Windows Phone Store-Apps, die über einen Dateivertrag gestartet werden, muss der Benutzer über die Schaltfläche „Zurück“ zu dem Bildschirm zurückkehren, von dem aus die App gestartet wurde, und nicht zum vorherigen Inhalt der App.

Apps sollten für jedes Aktivierungsereignis, durch das eine neue Seite geöffnet wird, einen neuen XAML-Frame erstellen. So enthält der Navigationsbackstack für den neuen XAML-Frame keinen vorherigen Inhalt, der beim Anhalten der App im aktuellen Fenster angezeigt wurde. Apps, für die ein einziger XAML-Frame für Start- und Dateiverträge verwendet wird, sollten vor dem Navigieren zu einer neuen Seite die Seiten im Navigationsjournal des Frames löschen.

Per Dateiaktivierung gestartete Apps sollten ggf. eine Benutzeroberfläche enthalten, über die der Benutzer zur ersten Seite der App zurückkehren kann.

Anmerkungen

Die empfangenen Dateien stammen unter Umständen aus einer nicht vertrauenswürdigen Quelle. Wir empfehlen, den Inhalt einer Datei zu überprüfen, bevor Sie sie weiter verarbeiten. Weitere Informationen zur Eingabeüberprüfung finden Sie unter Schreiben von sicherem Code.

Vollständiges Beispiel

Siehe Beispiel für Assoziationsstart (Windows).

Verwandte Themen

Konzepte

Standardprogramme

Dateityp- und Protokollzuordnungsmodell

Aufgaben

So wird's gemacht: Starten der Standard-App für eine Datei

So wird's gemacht: Behandeln der URI-Aktivierung

Richtlinien

Richtlinien und Prüflisten für Dateitypen und URIs

Referenz

Windows.Storage.StorageFile

Windows.UI.WebUI.WebUIFileActivatedEventArgs

WinJS.Application.onactivated