Aktivierung von Windows 8-Verträgen in Apps

Die Entwicklung von Windows 8

Einblicke in die Arbeit des Windows-Entwicklerteams

Aktivierung von Windows 8-Verträgen in Apps

  • Comments 1

Ein Thema, mit dem wir uns recht ausführlich beschäftigt haben, ist die Kommunikation zwischen Apps auf einem Windows 8-PC mit anderen Apps und Webdiensten. Zu Beginn von Windows 8 haben wir uns für einen Ansatz entschieden, mit dem Apps sowohl Quelle als auch Ziel für freizugebende Daten sein können – ähnlich einer Zwischenablage, aber mit einem umfassenderen Interaktionsmodell und übersichtlicherer Semantik. Wenn eine App einen Vertrag implementiert, fungiert Windows 8 als Bindeglied zwischen der App und anderen Apps im System bzw. zwischen der App und dem System selbst. Dies können Sie beobachten, wenn Sie z. B. in Internet Explorer im Metro-Stil auf den Charm „Teilen“ einer Webseite tippen: Sie können dann den Link über Ihre E-Mail-App an jemanden senden, dessen Kontaktinformationen in der App Kontakte gespeichert sind. Sie können in allen Apps suchen, die den Vertrag für „Suche“ implementiert haben. Sofern Speicherorte den Vertrag für „Auswahl ‚Datei öffnen‘“ implementiert haben, können Sie die Dateien an diesen Speicherorten öffnen. Wenn Speicherorte den Vertrag „Auswahl ‚Datei speichern‘“ implementiert haben, können Sie Dateien an diesen Speicherorten speichern. Dank dieses innovativen Ansatzes kann Windows 8 mit jeder beliebigen Paarung aus Apps oder Diensten arbeiten, statt für eine bestimmte App eine einzige Supportebene fest zu codieren. Wenn Sie möchten, unterstützt auch Ihr Microsoft-Konto diese Funktion: Sie können Ihr Konto z. B. mit verschiedenen Diensten wie Facebook, Twitter, LinkedIn usw. verbinden. Im Laufe der Woche werden wir mehrere Beiträge zu den neuen Microsoft-Apps veröffentlichen, in denen der Schwerpunkt auf Freigabe, Verbindungserstellung und Integration über Windows 8 liegt. Dieser Beitrag ist eine Wiederveröffentlichung aus dem Entwicklerblog für Windows 8-Apps und wurde von Derek Gebhard, einem Programmmanager unseres User Experience-Teams verfasst. – Steven


Bei der Entwicklung von Apps im Metro-Stil werden Sie sich bald mit dem neuen leistungsstarken Konzept der Verträge unter Windows 8 beschäftigen. Mithilfe dieser Verträge wird in Apps im Metro-Stil angegeben, welche Interaktionen mit anderen Apps und Windows unterstützt werden. Möglicherweise haben Sie bereits von einigen dieser Verträge gehört: z. B. den Verträgen für „Suche“, „Freigabe“ usw. Je mehr Apps mit implementierten Verträgen installiert werden, desto besser arbeiten die Apps mit dem System oder untereinander zusammen. In diesem Beitrag erläutere ich die Aktivierung, eines der wichtigsten Konzepte beim Hinzufügen der Verträge zu Apps.

Mithilfe der Windows-Aktivierungsplattform werden Apps im Metro-Stil gestartet und Informationen über die Gründe des Benutzers für das Starten der Apps bereitgestellt. Ein Grund ist beispielsweise der Start über die entsprechende Kachel auf der Startseite; ein anderer ist das Starten einer App für eine bestimmte Aufgabe, etwa das Anzeigen der Suchergebnisse einer Abfrage durch den Benutzer. Windows stellt für die App den Grund für den Start bereit. Bei Bedarf werden weitere Informationen bereitgestellt, die zum Ausführen der Aufgabe erforderlich sind. Bevor es die Windows 8-Aktivierungsplattform gab, wurden diese Informationen über Befehlszeilenparameter an die Apps übergeben. Mit dem neuen Modell wird nun auch die Übertragung von Live-Objekten wie einer StorageFile, ShareOperation usw. unterstützt, die einen Kontext für die App bereitstellen. Verträge sind also wesentlich leistungsfähiger. Befassen wir uns also direkt mit den Einzelheiten, die Sie kennen sollten, um das Starten einer App für einen Vertrag zu unterstützen.

Verträge: Zweck- und kontextgebundenes Starten von Apps im Metro-Stil

Im Demovideo zur Windows 8 Consumer Preview wird deutlich, dass die Windows 8-Verträge die Verbindung Ihrer App mit anderen Apps im Metro-Stil sowie mit der Benutzeroberfläche des Systems darstellen. Der Vertrag für „Auswahl ‚Datei öffnen‘“ ermöglicht dem Benutzer beispielsweise das Importieren von Dateien aus einer App in eine andere. Dank des Vertrags für „Suche“ können die Benutzer eine App von einem beliebigen Ort im System aus durchsuchen oder dieselbe Suchanfrage rasch in anderen Apps ausführen. In diesen und anderen Vertragsszenarien muss Windows direkt einen Punkt der Benutzeroberfläche Ihrer App aufrufen, an dem der Benutzer eine bestimmte Aufgabe schnell und effizient durchführen kann. Hier kommen Aktivierungsplattform und API ins Spiel:

Die Initialisierung der App-Interaktionen durch die Benutzer erfolgt auf zwei Arten:

  1. Durch eine Aktion, für die die App in der Vollbildansicht in den Vordergrund gerückt wird. Wir nennen das auch die Aktivierung der Hauptansicht. Ein Beispiel ist der Vertrag für „Suche“.

    Durch Klicken auf eine App im Suchbereich wird diese mit der Ansicht der enthaltenen Suchergebnisse gestartet.
    Beispiel für die Aktivierung der Hauptansicht
  2. Durch eine Aktion, die inline gehostet wird, ohne dass der Kontext der derzeit ausgeführten App verlassen wird. Dies bezeichnen wir auch als Aktivierung der gehosteten Ansicht. Die folgenden beiden Beispiele zeigen die Dateiauswahl in einer App und eine weitere App, die als Freigabeziel verwendet wird.

  3. Durch Auswahl einer App in der Dateiauswahl wird die Benutzeroberfläche der App an der Stelle gestartet, an der eine Datei ausgewählt werden kann.
    Beispiel einer Aktivierung der gehosteten Ansicht in der Dateiauswahl


    Starten der App „Mail“ mithilfe des Charms „Teilen“, um das entsprechende Foto freizugeben
    Beispiel einer Aktivierung der gehosteten Ansicht für Freigabeziele

    Die Unterschiede:

    Aktivierung der Hauptansicht

    Aktivierung der gehosteten Ansicht

    Vollständig immersiv und startet die Haupt-App auf dem Bildschirm

    Rendert die Benutzeroberfläche innerhalb des Systemchroms

    Kann für unterschiedlichste Aufgaben verwendet werden

    Wird für eine kurze, zielgerichtete Aufgabe verwendet, auf die der Code zugeschnitten ist

    Wird in der Liste für den App-Wechsel angezeigt

    Wird nicht in der Liste für den App-Wechsel angezeigt

    Kann mithilfe der Schließbewegung geschlossen werden

    Verändert nicht die Ansicht des Hauptfensters für dieselbe App

    Schauen wir uns diese Aktivierungsmodelle genauer an, und wenden wir sie auf einige verbreitete Szenarien an, die Sie bei der Entwicklung von großartigen Apps im Metro-Stil unterstützen.

    Szenario 1: Integrieren der Aktivierung der „Suche“ in die App

    Unter Windows 8 ermöglicht das Hinzufügen der Suchfunktion mithilfe des Vertrags für „Suche“ dem Benutzer, die Inhalte einer App jederzeit und von jedem Punkt des Systems aus zu durchsuchen. Ist die App die Haupt-App auf dem Bildschirm, können Benutzer deren Inhalte direkt mithilfe des Charms „Suche“ durchsuchen. Andernfalls können Benutzer den Charm „Suche“ auswählen und anschließend aus einer App-Liste im Suchbereich die zu durchsuchende App auswählen.

    Wird die Aktivierung der „Suche“ unterstützt, kann die App jederzeit gestartet werden und die Suchergebnisse einer bestimmten Anfrage anzeigen. Genau wie der Start über die Startseite ist auch der Start aus dem Suchbereich eine Aktivierung der Hauptansicht. Durch die Unterstützung mehrerer Verträge kann die App potenziell für zahlreiche Szenarien aktiviert werden. Zudem kann die App diese Aktivierung auch dann empfangen, wenn sie bereits ausgeführt wird, da der Benutzer die Hauptansicht für ein spezifisches Szenario verwenden möchte, etwa zur Anzeige von Suchergebnissen. Damit das funktioniert, empfehle ich:

    • Verzögern Sie das Laden von Code, der für den Vertrag für die Hauptansicht, für den die App aktiviert ist, nicht unbedingt notwendig ist.
    • Trennen Sie die allgemeine Initialisierungslogik, die Sie für alle Verträge verwenden, von der Logik, die zur Ausführung eines spezifischen Vertrags erforderlich ist.
    • Stellen Sie sicher, dass Code, der nur einmal beim Start ausgeführt werden soll, nicht so zum Aktivierungs-Handler hinzugefügt wird, dass eine mehrfache Ausführung möglich ist.
    • Laden Sie alle vorherigen Zustände und die Einstellungen neu, wenn die App aus einem geschlossenen Zustand gestartet wird, sodass sie aus Sicht des Benutzers stets ausgeführt und verbunden erscheint.

    Sehen Sie sich die Apps „Store“ und „Fotos“ an. Sie sind hervorragende Beispiele für diese Empfehlungen zur Unterstützung der Aktivierung der „Suche“.

    Abbildung der App „Store“ mit den Suchergebnissen für „Kalender“ Geöffneter Suchbereich, in dem der Benutzer eine neue Suchanfrage eingibt

    Suche in der App „Store“

     

    Die App „Fotos“ wird ausgeführt und zeigt die Suchergebnisse für „Vancouver“ an. Geöffneter Suchbereich mit einer ausgeführten Suchanfrage für „Vancouver“

    Suche in der App „Fotos“

    Betrachten wir nun, wie die Aktivierung der „Suche“ in JavaScript- und XAML-Apps richtig unterstützt wird.

    JavaScript-Apps

    Bei JavaScript-Apps im Metro-Stil wird die Aktivierung mithilfe des Ereignisses WinJS.Application.onactivated verfügbar gemacht. Dieses Ereignis wird ausgelöst, nachdem DOMContentLoaded abgeschlossen ist, wenn die App nicht bereits ausgeführt wird oder beendet wurde. Andernfalls wird das Ereignis ausgelöst, sobald die App von Windows deaktiviert werden muss. Die Visual Studio-Tools für JavaScript-Apps richten die Registrierung für dieses Ereignis in „default.js“ ein und stellen so einen Bereich zur Verfügung, wo Sie Code einfügen können, der beim Auftreten einer allgemeinen Startaktivierung ausgeführt wird, d. h. wenn der Benutzer die App von der Startseite aus startet.

    So erweitern Sie die Unterstützung für die Aktivierung der „Suche“ in der App

    1. Fügen Sie mithilfe des Manifest-Designers von Visual Studio die „Suche“-Deklaration zum Manifest hinzu.
    2. Platzieren Sie allgemeinen Initialisierungscode, der – unabhängig vom Grund – bei jedem Start der App ausgeführt werden muss, in den globalen Gültigkeitsbereich des JavaScripts. Fügen Sie Code, der Zugriff auf das DOM benötigt, in einen DOMContentLoaded-Ereignishandler ein.
    3. Führen Sie die Registrierung im für die Suche aktivierten Handle aus.
    4. Wenn die App für die „Suche“ aktiviert wird, navigieren Sie zur Suchergebnisseite, und übergeben Sie den queryText aus den Aktivierungsereignisargumenten.

    Wenn Sie so denken wie ich, suchen Sie eine einfachere Methode als die manuelle Durchführung. Glücklicherweise können Sie dies fast vollständig mit Visual Studio-Tools erledigen, indem Sie mit der rechten Maustaste auf Ihr Projekt klicken, „Hinzufügen > Neues Element“ auswählen und im Dialogfeld „Vertrag für ‚Suche’“ auswählen. Der größte Teil des Codes, den Sie hier sehen, und eine Benutzeroberfläche für die Suche, die Suchergebnisse den UX-Richtlinien für Suche entsprechend anzeigt, wird automatisch erzeugt. Jedoch Sie müssen diese Tools zusammen mit dem „WinJS.Navigation“-Framework verwenden.

    Hier sehen Sie einen Codeausschnitt aus der Datei „default.js“ meiner Foto-App mit der Unterstützung für die Aktivierung der „Suche“:

    // Register activated event handler
    WinJS.Application.addEventListener("activated", function (eventObject) {
    ...
    if (eventObject.detail.kind === appModel.Activation.ActivationKind.launch) {
    ...
    } else if (eventObject.detail.kind === appModel.Activation.ActivationKind.search) {
    uri = searchPageURI;
    pageParameters = { queryText: eventObject.detail.queryText };
    }
    // Indicate to the system that the splash screen must not be torn down
    // until after processAll and navigate complete asynchronously.
    if (uri) {
    eventObject.setPromise(ui.processAll().then(function () {
    return nav.navigate(uri, pageParameters);
    }));
    }
    });

    XAML-Anwendungen

    Für XAML-Apps im Metro-Stil übernimmt die Klasse Windows.UI.Xaml.Application einen Großteil der Arbeit, die nötig ist, damit die App die Aktivierung unterstützt. Diese Klasse macht einen Satz von Aktivierungsmethoden mit starker Typisierung verfügbar, die Sie zur Unterstützung von allgemeinen Verträgen wie „Suche“ außer Kraft setzen können. Bei allen Vertragsaktivierungen ohne stark typisierte Methode können Sie die OnActivated-Methode außer Kraft setzen und anhand der Art der Aktivierung festlegen, für welchen Vertrag die App aktiviert sein soll.

    Neue Projekte für XAML-Apps in Visual Studio enthalten bereits generierten Code, der die Windows.UI.Xaml.Application-Klasse verwendet, um die Aktivierung der App für einen allgemeinen Start zu ermöglichen. Der Code für die Aktivierung befindet sich in der Klassendarstellung für die App, in den „App.xaml.cs/cpp/vb“-Dateien.

    So erweitern Sie die Unterstützung für die Aktivierung der „Suche“ in der App

    1. Fügen Sie mithilfe des Manifest-Designers von Visual Studio die „Suche“-Deklaration zum Manifest hinzu.
    2. Platzieren Sie allgemeinen Initialisierungscode, der – unabhängig vom Grund – bei jedem Start der App ausgeführt werden muss, in den App-Konstruktor von „App.xaml.cs/cpp/vb“.
    3. Setzen Sie zur Aktivierung der „Suche“ die stark typisierte OnSearchActivated-Methode in „App.xaml.cs/cpp/vb“ außer Kraft.
    4. Laden Sie die „Suche“-Benutzeroberfläche, und zeigen Sie die empfangenen Suchergebnisse für die Anfrage in den SearchActivatedEventArgs an.

    Wie bei JavaScript-Apps gibt es auch hier eine einfachere Methode, als die manuelle Durchführung. Einen Großteil der Arbeit können Sie mithilfe der Visual Studio-Tools erledigen. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie „Hinzufügen > Neues Element“ aus und anschließend im Dialogfeld „Vertrag für ‚Suche’“. Der größte Teil des Codes, den Sie hier sehen, und eine Benutzeroberfläche für die Suche, die Suchergebnisse den UX-Richtlinien für Suche entsprechend anzeigt, wird automatisch erzeugt.

    Hier sehen Sie C#-Codeausschnitte aus meiner Foto-App mit der Unterstützung für die Aktivierung der „Suche“:

    Wir müssen die OnSearchActivated-Methode außer Kraft setzen, um die Aktivierung der „Suche“ zu unterstützen:

    protected override void OnSearchActivated(SearchActivatedEventArgs args)
    {
    // Load Search UI
    PhotoApp.SearchResultsPage.Activate(args.QueryText);
    }

    Die Activate-Methode der SearchResultsPage richtet eine Benutzeroberfläche ein, die die Suchergebnisse aus der Suchanfrage des Benutzers anzeigt:

    // SearchResultsPage.xaml.cs code snippet 
    public static void Activate(String queryText)
    {
    // If the window isn't already using Frame navigation, insert our own frame
    var previousContent = Window.Current.Content;
    var frame = previousContent as Frame;
    if (frame == null)
    {
    frame = new Frame();
    Window.Current.Content = frame;
    }
    // Use navigation to display the results, packing both the query text and the previous
    // Window content into a single parameter object
    frame.Navigate(typeof(SearchResultsPage1),
    new Tuple<String, UIElement>(queryText, previousContent));
    // The window must be activated in 15 seconds
    Window.Current.Activate();
    }

    Die Logik und Prinzipien, die hier präsentiert werden, sind nicht nur für das Hinzufügen von Unterstützung für die Aktivierung der „Suche“ anwendbar: Sie können dieselben Techniken verwenden, wenn Sie Unterstützung für Protokolle, Dateizuordnungen und die automatische Wiedergabe von Geräten hinzufügen, da es sich auch hier um Verträge zur Aktivierung der Hauptansicht handelt.

    Szenario 2: Integrieren der Aktivierung der „Auswahl ‚Datei öffnen‘“ in die App

    Mit einer App im Metro-Stil kann die Dateiauswahl aufgerufen werden, sodass der Benutzer sein System durchsuchen und Dateien und Ordner auswählen kann, die mit der App bearbeitet werden sollen. Zudem kann der Benutzer (mithilfe der Funktion „Speichern unter“) eine Datei unter einem neuen Namen, mit einem anderen Dateityp oder an einem anderen Ort speichern. Die Dateiauswahl kann des Weiteren von einer App als Schnittstelle verwendet werden, mit der anderen Apps Dateien, ein Speicherort oder sogar Dateiupdates bereitgestellt werden. Wenn Sie den Vertrag für „Auswahl ‚Datei öffnen‘“ integrieren, können die Benutzer Dateien aus Ihrer App direkt aus einer anderen App heraus auswählen. Dadurch erhalten die Benutzer die Freiheit und Flexibilität, Dateien auszuwählen, die von Ihrer App gespeichert und angezeigt werden.

    Beim Starten einer App für den Vertrag für „Auswahl ‚Datei öffnen‘“ handelt es sich um eine Aktivierung der gehosteten Ansicht. Die Benutzeroberfläche der App wird innerhalb der Dateiauswahl gehostet, und der Code, der für diese Aktivierung ausgeführt wird, darf ausschließlich dazu verwendet werden, den Benutzern die Auswahl von Dateien zu ermöglichen. Es ist wichtig, dass die App an diesem Punkt so schnell wie möglich reagiert, damit der Vorgang für die Benutzer nahtlos verläuft. Laden Sie keinen Code oder keine Bibliotheken, die nicht für die spezifische Aufgabe der Aktivierung aus der gehosteten Ansicht erforderlich sind.

    Ich empfehle einen Blick auf die App „SkyDrive“, die ein hervorragendes Beispiel für die Unterstützung der Aktivierung der „Auswahl ‚Datei öffnen‘“ ist, in dem die App einzig auf die Aufgabe ausgerichtet ist, den Benutzern die Dateiauswahl zu ermöglichen.

    Die Auswahl wird ausgeführt, und der Benutzer kann eine Datei aus seiner SkyDrive-App auswählen.

    Unterstützung der „Auswahl ‚Datei öffnen‘“ in der SkyDrive-App

    Sehen wir uns nun an, wie Sie die Aktivierung der „Auswahl ‚Datei öffnen‘“ in JavaScript- und XAML-Apps richtig unterstützen.

    JavaScript-Apps

    Die Aktivierung aus der gehosteten Ansicht erfolgt in JavaScript-Apps im Metro-Stil auf die gleiche Art wie die Aktivierung aus der Hauptansicht. Es gibt jedoch einen wesentlichen Unterschied: Die Aktivierung der gehosteten Ansicht erfolgt stets in einem neuen Fenster und Skriptkontext. Das bedeutet, dass für den Code, mit dem die Aktivierung verarbeitet wird, kein Zugriff auf Bibliotheken, globale Variablen oder das DOM der Haupt-App besteht.

    So erweitern Sie Ihre App für die Unterstützung der Aktivierung der „Auswahl ‚Datei öffnen‘“

    1. Erstellen Sie eine neue HTML-Seite, die speziell für den Vertrag für „Auswahl ‚Datei öffnen‘“ entworfen ist.
    2. Fügen Sie im Manifest-Designer von Visual Studio die Deklaration der „Auswahl ‚Datei öffnen‘“ hinzu, und legen Sie die neu erstellte HTML-Seite als Startseite fest.
    3. Um eine optimale Leistung zu gewährleisten, laden Sie auf dieser Seite ausschließlich JavaScript und andere Ressourcen, die für die Unterstützung des Vertrags für „Auswahl ‚Datei öffnen‘“ erforderlich sind.
    4. Strukturieren Sie den Ereignishandler für die Aktivierung so, dass ausschließlich die Aktivierung des Vertrags für „Auswahl ‚Datei öffnen‘“ verarbeitet wird. Dieser Handler wird während dem Ausführen der Dateiauswahl-Aufgabe nur einmal aufgerufen.
    5. Steuern Sie die Dateiauswahl mithilfe der Ereignisargumente der Aktivierung.

    Um Zeit zu sparen, können Sie einen Großteil dieser Arbeit mit den Visual Studio-Tools erledigen. Klicken Sie einfach mit der rechten Maustaste auf Ihr Projekt, wählen Sie „Hinzufügen > Neues Element“ aus und anschließend im Dialogfeld den Vertrag für „Dateiauswahl“. Der Großteil der angezeigten Vorgänge wird automatisch für Ihr Projekt erstellt.

    Im folgenden Codeausschnitt aus der Datei „fileOpenPicker.js“ meiner Foto-App können Sie die Verarbeitung der Aktivierung der „Auswahl ‚Datei öffnen‘“ nachlesen:

    // Register activated event handler for handling File Open Picker activation
    WinJS.Application.addEventListener("activated", function (eventObject) {
    if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.fileOpenPicker) {
    pickerUI = eventObject.detail.fileOpenPickerUI;
    pickerUI.onfileremoved = fileRemovedFromPickerUI;
    ...
    }
    });

    WinJS.Application.start();

    XAML-Anwendungen

    In XAML-Apps im Metro-Stil wird die Aktivierung der gehosteten Ansicht auf ähnliche Weise unterstützt wie die Aktivierung der Hauptansicht. Der größte Unterschied besteht darin, dass die App beim Verarbeiten der Aktivierung nun einen neuen Thread und ein neues Fenster erstellen muss. Das Erstellen des neuen Threads und des neuen Fensters für die Aktivierung der gehosteten Ansicht wird vom Vorlagencode in Visual Studio übernommen.

    Für die Verarbeitung der Aktivierung der „Auswahl ‚Datei öffnen‘“ müssen von einer XAML-App folgende Schritte ausgeführt werden:

    1. Hinzufügen der Deklaration der „Auswahl ‚Datei öffnen‘“ zu Ihrem Manifest mit dem Manifest-Designer von Visual Studio
    2. Außer Kraft setzen der OnFileOpenPickerActivated-Methode in „App.Xaml.cs/cpp/vb“ und Laden der Seite, die diesen Vertrag verarbeitet
    3. Übergeben von FileOpenPickerActivatedEventArgs an die Seite, mit der dieser Vertrag verarbeitet wird, damit letztere auf die Dateiauswahl reagieren kann

    Um Zeit zu sparen, können Sie diese Arbeit mit den Visual Studio-Tools erledigen. Klicken Sie einfach mit der rechten Maustaste auf Ihr Projekt, wählen Sie „Hinzufügen > Neues Element“ aus und anschließend im Dialogfeld den Vertrag für „Dateiauswahl“. Der Großteil der angezeigten Vorgänge wird automatisch für Ihr Projekt erstellt.

    Sehen Sie sich beispielsweise im folgenden C#-Ausschnitt meiner Foto-App an, wie die Aktivierung der „Auswahl ‚Datei öffnen‘“ verarbeitet wird:

    // App.xaml.cs code snippet
    protected override void OnFileOpenPickerActivated(FileOpenPickerActivatedEventArgs args)
    {
    var fileOpenPickerPage = new PhotoApp.FileOpenPickerPage();
    fileOpenPickerPage.Activate(args);
    }

    // FileOpenPickerPage.xaml.cs code snippet
    public void Activate(FileOpenPickerActivatedEventArgs args)
    {
    this._fileOpenPickerUI = args.FileOpenPickerUI;
    this._fileOpenPickerUI.FileRemoved += FileOpenPickerUI_FileRemoved;

    // Show the user’s photos in the Picker UI
    ...

    Window.Current.Content = this;
    // The window must be activated in 15 seconds
    Window.Current.Activate();
    }

    Die Logik und Prinzipien, die hier dargestellt werden, sind nicht nur für das Hinzufügen von Unterstützung für die Aktivierung der „Auswahl ‚Datei öffnen‘“ anwendbar: Mit derselben Methode können Sie die Unterstützung für die Verträge für Ziel freigeben, „Auswahl ‚Datei speichern‘“, Kontaktauswahl, Kameraeinstellungen und Einstellungen für Druckaufgaben hinzufügen, da es sich hierbei ebenfalls um Verträge zur Aktivierung der gehosteten Ansicht handelt.

    Zusammenfassung

    Ich habe Ihnen gezeigt, wie „Suche“, „Dateiauswahl“ und andere Windows 8-Verträge es Benutzern in Ihrer App ermöglichen, spezifische Aufgaben von anderen Teilen des Systems oder in bestimmten Szenarien sogar von anderen Apps zu erledigen. Die Benutzer werden erwarten, dass diese Aufgaben in Ihrer App schnell und flüssig ausgeführt werden, da sowohl Windows als auch der App Zweck und Aufgabe bekannt sind. Die richtige Implementierung der App-Aktivierung ist beim benutzerfreundlichen Entwickeln für diese Verträge von grundlegender Bedeutung. Auch wenn Sie nur am Kern einer App arbeiten und dabei überhaupt keine Verträge verwenden, können diese Hinweise bei der Einrichtung der allgemeinen Startaktivierung hilfreich sein. So können Sie die App später leicht um die Unterstützung von Verträgen erweitern, ohne den Code umgestalten zu müssen.

    Zur Erinnerung:

    1. Platzieren Sie alles, was zur allgemeinen App-Initialisierungslogik gehört, an einem Speicherort, an dem diese Elemente unabhängig von der Art der Aktivierung der App ausgeführt werden.
    2. Die Aktivierungs-Handler können auch dann ausgeführt werden, wenn die App bereits ausgeführt wird oder beendet wurde. Stellen Sie sicher, dass dies keine unbeabsichtigten Konsequenzen für die App hat.
    3. Visual Studio-Tools können Ihnen bei der Unterstützung der Verträge für „Suche“, „Ziel freigeben“ und „Auswahl ‚Datei öffnen‘“ einen großen Teil der Arbeit abnehmen. Rechtsklicken Sie einfach auf Ihr Projekt, und wählen Sie „Hinzufügen > Neues Element“ aus.
    4. Beim Empfang einer Aktivierung der gehosteten Ansicht laden Sie nur den Code, der für die mit der Aktivierung zusammenhängenden Aufgabe notwendig ist.

    Weitere Informationen zu Aktivierung und Verträgen unter Windows 8 finden Sie unter den folgenden Links. Sie können Ihre Fragen auch in unseren Foren stellen.

    Dokumentation

    Beispiele

    Vielen Dank

    Derek Gebhard
    Programmmanager, Windows User Experience

    Unter Mitarbeit von: Jake Sabulsky, Marco Matos, Daniel Oliver

  • Loading...
Leave a Comment
  • Please add 4 and 3 and type the answer here:
  • Post