So wird's gemacht: Starten der Standard-App für einen URI (Windows Store-Apps mit JavaScript und HTML)
Hier erfahren Sie, wie Sie die Standard-App für einen URI starten. URIs ermöglichen den Start einer anderen App des Systems, um eine bestimmte Aufgabe auszuführen. Wenn Sie z. B. dem Benutzer die Möglichkeit geben möchten, in Ihrer App eine E-Mail an einen Kontakt zu schreiben, können Sie die Standard-E-Mail-App des Benutzers über den URI "mailto:" starten.
In den folgenden Schritten erfahren Sie, wie Sie den Standardhandler für einen URI mithilfe der Windows.System.Launcher-API starten.
Anweisungen
Schritt 1: Erstellen des URI
Erstellen Sie ein Windows.Foundation.Uri-Objekt für den zu startenden URI. Dieser URI verwendet den Schemanamen "HTTP".
// The URI to launch var uriToLaunch = "http://www.bing.com"; // Create a Uri object from a URI string var uri = new Windows.Foundation.Uri(uriToLaunch);
Schritt 2: Starten des URI
Windows stellt mehrere verschiedene Optionen zum Starten des Standardhandlers für einen URI bereit. Diese werden in dem folgenden Diagramm und in den folgenden Abschnitten beschrieben.
| Option | Methode | Beschreibung |
| Standardstart | LaunchUriAsync(Uri) | Starten Sie den angegebenen URI mit dem Standardhandler. |
| Start mit Warndialogfeld | LaunchUriAsync (Uri, LauncherOptions) | Windows zeigt vor dem Start des angegebenen URI einen Warndialog an. |
| Start mit einem empfohlenen App-Fallback | LaunchUriAsync (Uri, LauncherOptions) | Starten Sie den angegebenen URI mit dem Standardhandler. Wenn kein Handler im System installiert ist, empfehlen Sie dem Benutzer eine App im Windows Store. |
In diesen Beispielen wird die Windows.System.Launcher.launchUriAsync-Methode zum Starten des URI verwendet. Dies ist eine überladene Methode.
Default launch
Rufen Sie launchUriAsync(Uri) auf, um den in Schritt 1 erstellten URI mit der Standard-App für den HTTP-URI zu starten.
// Launch the URI Windows.System.Launcher.launchUriAsync(uri).then( function (success) { if (success) { // URI launched } else { // URI launch failed } });
Launch with a warning dialog
Rufen Sie launchUriAsync(Uri, LauncherOptions) auf, um den in Schritt 1 erstellten URI mit einer Warnung zu starten. Die treatAsUntrusted-Eigenschaft gibt an, dass das System eine Warnung anzeigen sollte.
// Launch the URI with a warning prompt var options = new Windows.System.LauncherOptions(); options.treatAsUntrusted = true; Windows.System.Launcher.launchUriAsync(uri, options).then( function (success) { if (success) { // URI launched } else { // URI launch failed } });
Launch with a recommended app fallback
Es kann jedoch sein, dass der Benutzer nicht über die erforderliche App zum Bearbeiten des aufgerufenen URI verfügt. In diesen Fällen bietet Windows standardmäßig einen Link an, mit dessen Hilfe Benutzer im Store nach einer geeigneten App suchen können. Wenn Sie dem Benutzer eine bestimmte App für dieses spezifische Szenario empfehlen möchten, können Sie die Empfehlung zusammen mit dem URI weitergeben, der gestartet wird. Rufen Sie dazu die Windows.System.Launcher.LaunchUriAsync(Uri, LauncherOptions) -Methode auf, wobei LauncherOptions.preferredApplicationPackageFamilyName auf den Namen der Paketfamilie der empfohlenen App im Store festgelegt ist. Legen Sie anschließend LauncherOptions.preferredApplicationDisplayName auf den Namen dieser App fest. Diese Informationen werden von Windows verwendet, um die allgemeine Option zum Suchen einer App im Store durch die spezifische Option zum Verwenden der empfohlenen App im Store zu ersetzen.
Hinweis Wenn Sie eine App empfehlen möchten, müssen Sie beide Optionen festlegen. Eine Festlegung der einen ohne die andere führt zu einem Fehler.
// Set the recommended app. var options = new Windows.System.LauncherOptions(); options.preferredApplicationPackageFamilyName = "Contoso.URIApp_8wknc82po1e"; options.preferredApplicationDisplayName = "Contoso URI App"; // Launch the URI and pass in the recommended app // in case the user has no apps installed to handle the URI Windows.System.Launcher.launchUriAsync(uri, options).then( function (success) { if (success) { // Uri launched } else { // Uri launch failed } });
Anmerkungen
Die gestartete App kann nicht von Ihrer App ausgewählt werden. Der Benutzer entscheidet, welche App gestartet wird. Der Benutzer kann eine Windows Store-App oder eine Desktop-App auswählen.
Beim Starten eines URI durch Ihre App muss diese im Vordergrund ausgeführt werden, d. h., die App muss für den Benutzer sichtbar sein. Mithilfe dieser Anforderung wird sichergestellt, dass der Benutzer zu jedem Zeitpunkt die Kontrolle behält. Verknüpfen Sie alle URI-Startvorgänge direkt mit der Benutzeroberfläche Ihrer App, um sicherzustellen, dass diese Anforderung erfüllt wird. Benutzer sollten nach Möglichkeit immer eine Aktion ausführen müssen, bevor ein URI gestartet werden kann. Wenn Sie versuchen, einen URI zu starten, und Ihre App befindet sich nicht im Vordergrund, ist der Start fehlerhaft und Ihr Fehlerrückruf wird aufgerufen.
Sie müssen die privateNetworkClientServer-Funktion angeben, um Intranet-URIs aufrufen zu können, z. B. einen "file:///"-URI, der auf eine Netzwerkadresse verweist.
Diese Methode kann nicht zum Ausführen eines URI in der lokalen Zone verwendet werden. Beispielsweise können Apps nicht mithilfe des URI "file:///" auf Dateien auf dem lokalen Computer zugreifen. Stattdessen müssen Sie mit Storage APIs auf die Dateien zugreifen. Wenn Sie versuchen, einen Intranet-URI ohne die richtige Funktion oder einen URI für die lokale Zone zu starten, ist der Start fehlerhaft und Ihr Fehlerrückruf wird aufgerufen.
Vollständiges Beispiel
Siehe Beispiel für Assoziationsstart.
Verwandte Themen
- Aufgaben
- So wird's gemacht: Behandeln der Protokollaktivierung
- So wird's gemacht: Starten der Standard-App für eine Datei
- Richtlinien
- Richtlinien und Prüflisten für Dateitypen und URIs
- Referenz
- Windows.System.Launcher.launchUriAsync
