So wird’s gemacht: Behandeln der URI-Aktivierung (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 URI (Uniform Resource Identifier)-Schemanamen registriert werden. Sowohl Desktop-Apps als auch Windows-Runtime-Apps können als Standardhandler für einen URI-Schemanamen registriert werden. Wenn Ihre App vom Benutzer als Standardhandler für einen URI-Schemanamen ausgewählt wird, wird sie immer dann aktiviert, wenn dieser URI-Typ gestartet wird.

Wir empfehlen, die Registrierung für einen URI-Schemanamen nur durchzuführen, wenn davon auszugehen ist, dass Sie alle entsprechenden Vorgänge für diesen URI-Schematyp behandeln werden. Wenn Sie sich entscheiden, die Registrierung für einen bestimmten URI-Schemanamen durchzuführen, müssen Sie die entsprechenden Funktionen bereitstellen, die vom Benutzer bei der Aktivierung für dieses URI-Schemas erwartet werden. Beispielsweise sollte eine App, die für den URI-Schemanamen "mailto:" registriert wird, eine neue E-Mail-Nachricht öffnen, damit Benutzer eine neue E-Mail erstellen können. Weitere Informationen zu URI-Zuordnungen finden Sie unter Richtlinien und Prüflisten für Dateitypen und URIs.

Die folgenden Schritte zeigen, wie Sie den benutzerdefinierten Schemanamen ".alsdk://" registrieren und Ihre App aktivieren, wenn der Benutzer einen URI vom Typ ".alsdk://" 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 URI-Schemanamen Aktivierungsereignisse. Im Folgenden wird beschrieben, wie Sie festlegen, dass die App den URI-Schemanamen alsdk behandelt.

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

    Es folgt eine kurze Beschreibung der Felder, die sie im Paketmanifest ausfüllen können:

    Feld Beschreibung

    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.
     

    Reservierte und verbotene Dateitypen

    Es folgen alphabetisch sortierte Listen mit URI-Schemanamen, die Sie nicht für Ihre App registrieren können, weil sie reserviert oder unzulässig sind:

    Hinweis  

    Für Windows Store-Apps

    application.manifest, application.reference, batfile, blob, cerfile, chm.file, cmdfile, comfile, cplfile, dllfile, drvfile, exefile, explorer.assocactionid.burnselection, explorer.assocactionid.closesession, explorer.assocactionid.erasedisc, explorer.assocactionid.zipselection, explorer.assocprotocol.search-ms, explorer.burnselection, explorer.closesession, explorer.erasedisc, explorer.zipselection, file, fonfile, hlpfile, htafile, inffile , insfile, internetshortcut, jsefile, lnkfile, microsoft.powershellscript.1, ms-accountpictureprovider, ms-appdata, ms-appx, ms-autoplay, msi.package, msi.patch, ms-windows-store, ocxfile, piffile, regfile, scrfile, scriptletfile, shbfile, shcmdfile, shsfile,smb, sysfile, ttffile,unknown, usertileprovider,vbefile,vbsfile, windows.gadget,wsffile, wsfile,wshfile

    Hinweis  

    Für Windows Phone Store-Apps

    Windows Phone reserviert die folgenden URI-Schemas für integrierte Apps.

    bing, callto, dtmf, http, https, mailto, maps, ms-excel, ms-powerpoint, ms-settings-airplanemode, ms-settings-bluetooth, ms-settings-cellular, ms-settings-emailandaccounts, ms-settings-location, ms-settings-lock, ms-settings-wifi, ms-word, office, onenote, tel, wallet, xbls, zune

    Windows Phone reserviert die folgenden URI-Schemas für das Betriebssystem.

    Explorer.AssocActionId.BurnSelection, Explorer.AssocActionId.CloseSession, Explorer.AssocActionId.EraseDisc, Explorer.AssocActionId.ZipSelection, Explorer.AssocProtocol.search-ms, Explorer.BurnSelection, Explorer.CloseSession, Explorer.EraseDisc, Explorer.ZipSelection, File, Iehistory, Ierss, Javascript, Jscript, LDAP, Res, rlogin, StickyNotes, telnet, tn3270, Vbscript, windowsmediacenterapp, windowsmediacenterssl, windowsmediacenterweb, WMP11.AssocProtocol.MMS

    Anzeigename

    Geben Sie den Anzeigenamen zur Identifikation des URI-Schemanamens in der Systemsteuerung unter Standardprogramme festlegen an.

    Logo

    Geben Sie das Logo zur Identifikation des URI-Schemanamens in der Systemsteuerung unter Standardprogramme festlegen an. Wenn kein Logo angegeben wird, wird das kleine Logo für die App verwendet.

    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 sie für den URI-Schemanamen 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 Protokoll aus, und klicken Sie auf Hinzufügen.

  4. Geben Sie alsdk in das Feld Name ein.

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

  6. 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.protocol-Kategorie gibt an, dass die App den URI-Schemanamen 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.protocol">
               <Protocol Name="alsdk"/>
               <Logo>images\logo.png</Logo>                                     
               <DisplayName>SDK Sample URI Scheme</DisplayName>
            </Extension>                      
         </Extensions>
      </Application>
   </Applications>
</Package>

Schritt 2: Hinzufügen der geeigneten Symbole

Die Symbole von Apps, die für einen URI-Schemanamen zum Standard werden, werden an verschiedenen Stellen innerhalb des Systems angezeigt, z. B. in der Systemsteuerung unter "Standardprogramme".

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 URI-Aktivierung 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 protocol-Aktivierungsereignisse behandelt.

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

       // The received URI is eventArgs.detail.uri.rawUri
   }
}

Anmerkungen

Ihr URI-Schemaname kann von jeder App oder Website verwendet werden, auch von schädlichen. Alle im URI empfangenen Daten könnten daher von einer nicht vertrauenswürdigen Quelle stammen. Wir empfehlen, niemals eine endgültige Aktion auf Grundlage der Parameter auszuführen, die Sie im URI erhalten. URI-Parameter können z. B. zum Starten der App mit der Kontoseite eines Benutzers, aber nicht zum direkten Ändern des Kontos des Benutzers verwendet werden.

Hinweis  Wenn Sie für ihre App einen neuen URI-Schemanamen erstellen, ist es wichtig, dass Sie die Ratschläge in RFC 4395 befolgen. Damit wird sichergestellt, dass Ihr Name die Standards für URI-Schemas erfüllt.

 

Hinweis  

Bei Windows Phone Store-Apps, die über einen Protokollvertrag 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 ein neues URI-Ziel 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 Protokollverträge verwendet wird, sollten vor dem Navigieren zu einer neuen Seite die Seiten im Navigationsjournal des Frames löschen. Über den Protokollvertrag gestartete Apps sollten ggf. eine Benutzeroberfläche enthalten, über die der Benutzer zum Anfang der App zurückkehren kann.

Vollständiges Beispiel

Siehe Beispiel für Assoziationsstart (Windows).

Verwandte Themen

Konzepte

Standardprogramme

Dateityp- und URI-Zuordnungsmodell

Kompatibilitäts-Cookbook für Windows 8 Release Preview und Windows Server 2012 RC (Informationen zum Benutzermodell)

Aufgaben

So wird's gemacht: Starten der Standard-App für einen URI

So wird's gemacht: Behandeln der Dateiaktivierung

Richtlinien

Richtlinien und Prüflisten für Dateitypen und URIs

Referenz

Windows.UI.WebUI.WebUIProtocolActivatedEventArgs

WinJS.Application.onactivated