Language: HTML | XAML

Schnellstart: Empfangen von geteilten Inhalten (XAML)

Applies to Windows and Windows Phone

Diese Schnellstartanleitung führt Sie durch die Schritte für das Teilen von Inhalten mit einer anderen App.

Ziel: Sie erfahren, wie Sie geteilte Inhalte empfangen.

Voraussetzungen

  • Sie sollten mit Visual Studio und den darin enthaltenen Vorlagen vertraut sein.
  • Sie sollten mit der Entwicklung in C# vertraut sein.

Anweisungen

Unterstützen des Freigabe-Vertrags

Bevor die App freigegebene Inhalte empfangen kann, müssen Sie deklarieren, dass sie den Freigabe-Vertrag unterstützt. Dieser Vertrag informiert das System darüber, dass Ihre App für das Empfangen von Inhalten zur Verfügung steht. Wenn Sie die App mithilfe einer Visual Studio-Vorlage erstellen, gehen Sie wie folgt vor, um den Freigabe-Vertrag zu unterstützen:

  1. Öffnen Sie die Manifestdatei. Ihr Name lautet in etwa package.appxmanifest.
  2. Öffnen Sie die Registerkarte Deklarationen.
  3. Wählen Sie in der Liste Verfügbare Deklarationen die Option Zielfreigabe aus, und klicken Sie auf Hinzufügen.

Angeben der unterstützten Dateitypen und Datenformate

Als Entwickler einer Ziel-App müssen Sie entscheiden, welche Dateitypen und Datenformate Sie unterstützen möchten. Gehen Sie wie folgt vor, um die unterstützten Dateitypen anzugeben:

  1. Öffnen Sie die Manifestdatei. Ihr Name lautet in etwa package.appxmanifest.
  2. Klicken Sie im Abschnitt Unterstützte Dateitypen der Seite Deklarationen auf Neue Hinzufügen.
  3. Geben Sie die zu unterstützenden Dateinamenerweiterungen ein. Beispiel: .docx Sie müssen den Punkt (.) angeben.

Wenn Sie alle Dateitypen unterstützen möchten, aktivieren Sie das Feld SupportsAnyFileType.

Gehen Sie wie folgt vor, um die unterstützten Datenformate anzugeben:

  1. Öffnen Sie die Manifestdatei.
  2. Klicken Sie im Abschnitt Datenformate der Seite Deklarationen auf Neue Hinzufügen.
  3. Geben Sie den Namen des zu unterstützenden Datenformats ein. Beispiel: "Text"

Die Freigabe-APIs unterstützen verschiedene Standardformate wie Text, HTML und Bitmaps. Sie können auch benutzerdefinierte Dateitypen und Datenformate angeben. Denken Sie in solchen Fällen jedoch daran, dass die Quell-Apps wissen müssen, welcher Art diese Typen und Formate sind, da sie diese andernfalls nicht für das Teilen von Daten verwenden können.

Hinzufügen der "DataTransfer"-Namespaces

Sie müssen Ihrer App die richtigen Namespaces hinzufügen, damit Sie Ereignisse der Aktivierung des Teilens behandeln können. Zudem müssen Sie die zur Teilung gehörenden Objekte erstellen und verarbeiten. Für eine Ziel-App benötigen Sie die Namespaces Windows.ApplicationModel.Activation, Windows.ApplicationModel.DataTransfer, und Windows.ApplicationModel.DataTransfer.ShareTarget:


using Windows.ApplicationModel.Activation;
using Windows.ApplicationModel.DataTransfer;
using Windows.ApplicationModel.DataTransfer.ShareTarget;


Behandeln der Aktivierung des Teilens

Wenn ein Benutzer Ihre App auswählt (i. d. R. durch die Auswahl aus einer Liste verfügbarer Ziel-Apps auf der Benutzeroberfläche für das Teilen), wird ein Application.OnShareTargetActivated-Ereignis ausgelöst. Ihre App muss dieses Ereignis behandeln, damit die Daten, die der Benutzer teilen möchte, verarbeitet werden können.


protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
    // Code to handle activation goes here.	
}

Hinweis  

Falls Ihre App zum Zeitpunkt der Aktivierung als Freigabeziel bereits ausgeführt wird, wird die vorhandene Instanz Ihrer App beendet und eine neue Instanz Ihrer App gestartet, um den Vertrag abzuwickeln.


void App::OnShareTargetActivated(ShareTargetActivatedEventArgs^ args)
{
    // Code to handle activation goes here.	
}

Die Daten, die ein Benutzer teilen möchte, sind in einem ShareOperation-Objekt enthalten. Mithilfe dieses Objekts können Sie das Format der enthaltenen Daten ermitteln. Im Folgenden finden Sie ein Beispiel für einen Ereignishandler, der geteilte Inhalte im Nur-Text-Format behandelt:


ShareOperation shareOperation = args.ShareOperation;
if (shareOperation.Data.Contains(StandardDataFormats.Text))
{
    string text = await shareOperation.Data.GetTextAsync();

    // To output the text from this example, you need a TextBlock control
    // with a name of "sharedContent".
    sharedContent.Text = "Text: " + text;
}


Berichten über den Status bei verlängertem Teilen (bei längeren Vorgängen)

  • Applies to Windows Phone

Hinweis  

Die folgenden Schritte gelten nur für Windows Store-Apps. Sie können die folgenden Berichtsmethoden zwar auch unter Windows Phone 8.1 aufrufen, in diesem Fall werden jedoch keine Daten zurückgegeben.

In einigen Fällen kann es eine Weile dauern, bis Ihre App die zu teilenden Daten verarbeitet hat. Dies wird als verlängertes Teilen bezeichnet. Verlängertes Teilen tritt z. B. beim Austausch von Datei- oder Bildsammlungen auf. Diese Elemente sind größer als einfache Textzeichenfolgen, sodass auch ihre Verarbeitung länger dauert.

Hinweis  Wenn Sie nur einfache Dinge wie Texte oder Hyperlinks teilen möchten, können Sie diesen Abschnitt überspringen.

Als Ziel-App sollte Ihre App die Benutzer nicht unbedingt in der UI für das Teilen halten, nur weil Ihre App mehr Zeit für das Behandeln der Daten benötigt. Verwenden Sie stattdessen das ShareOperation-Objekt, um das System darüber zu informieren, dass Ihre App noch ausgeführt wird. Auf diese Weise können Benutzer die UI für das Teilen verlassen und mit ihrer vorherigen Tätigkeit fortfahren. Währenddessen fährt Ihre App im Hintergrund mit der Datenverarbeitung fort.


shareOperation.ReportStarted();


Nach dem Aufruf von ReportStarted sollte Ihre App keine Benutzerinteraktion mehr verlangen. Sie sollten den Aufruf daher nur durchführen, wenn Ihre App vom Benutzer verlassen werden kann.

Beim verlängerten Teilen ist es möglich, dass der Benutzer die Quell-App beendet, bevor Ihre App alle Daten aus dem DataPackage-Objekt abgerufen hat. Es wird daher empfohlen, dass Sie das System informieren, wenn Ihre App die erforderlichen Daten erhalten hat. So kann das System die Quell-App ggf. anhalten oder beenden.


shareOperation.ReportDataRetreived();

Sie sollten das System auch darüber informieren, ob Sie eine der Windows.Networking.BackgroundTransfer classes-Klassen für das Hochladen Ihrer Inhalte verwenden. Verwenden Sie dafür die ReportSubmittedBackgroundTask-Methode.


shareOperation.ReportSubmittedBackgroundTask();

Falls ein Fehler auftritt, können Sie auch ReportError aufrufen, um eine Fehlermeldung an das System zu senden. Den Benutzern wird die Meldung angezeigt, wenn sie den Status des Teilens überprüfen. An dieser Stelle wird die App heruntergefahren und das Teilen beendet—der Benutzer muss von vorn beginnen, um den Inhalt mit Ihrer App zu teilen. Abhängig von Ihrem Szenario beschließen Sie unter Umständen, dass ein bestimmter Fehler nicht so schwerwiegend ist, dass das Teilen beendet werden soll. In diesem Fall können Sie sich gegen das Aufrufen von ReportError entscheiden und mit dem Teilen fortfahren.


shareOperation.ReportError("Could not reach the server! Try again later.");

Wenn Sie diese Methoden verwenden, sollten Sie unbedingt die angegebene Reihenfolge beachten und die Methoden jeweils nur einmal aufrufen. Unter bestimmten Umständen kann ReportDataRetrieved von einer Ziel-App jedoch vor ReportStarted aufgerufen werden. Beispielweise können die Daten von der App im Rahmen einer Aufgabe des Aktivierungshandlers aufgerufen werden. ReportStarted wird jedoch erst aufgerufen, wenn der Benutzer auf eine Schaltfläche zum Teilen klickt.

Das Teilen in Aktion sehen Sie in unserer Beispiel-Ziel-App für das Teilen von Inhalten.

Berichten über den Abschluss des Teilens

Zum Abschluss der erfolgreichen Verarbeitung der geteilten Daten durch Ihre App sollten Sie ReportCompleted aufrufen, um das System zu informieren.


shareOperation.ReportCompleted();

Wenn Ihre App mit dem Teilen fertig ist, wird sie beendet.

Zurückgeben eines QuickLink-Objekts nach erfolgreicher Freigabe

  • Applies to Windows Phone

Hinweis  

QuickLinks werden unter Windows Phone 8.1 nicht unterstützt. Windows Phone Store-Apps können QuickLinks zwar im Rahmen eines Vorgangs zum Teilen empfangen, sie werden jedoch automatisch ignoriert.

Wählt ein Benutzer Ihre App aus, um freigegebene Inhalte zu empfangen, sollten Sie einen QuickLink erstellen. Ein QuickLink ähnelt einer Verknüpfung, über die Benutzer leichter Informationen mit Ihrer App austauschen können. Ihre App könnte beispielsweise einen QuickLink erstellen, der eine neue E-Mail erstellt, die bereits die E-Mail-Adresse eines Freundes enthält.

Ein QuickLink muss über einen Titel, ein Symbol und eine ID verfügen. Der Titel (z. B. "E-Mail an Mutter") und das Symbol werden angezeigt, wenn der Benutzer auf den "Teilen"-Knopf tippt. Die ID verwendet Ihre App für den Zugriff auf benutzerdefinierte Informationen wie eine E-Mail-Adresse oder Anmeldeinformationen. Wenn Ihre App einen QuickLink erstellt, gibt sie den QuickLink an das System zurück, indem sie die ReportCompleted-Methode des ShareOperation-Objekts aufruft. Hier ist ein Beispiel:


async void ReportCompleted(ShareOperation shareOperation, string quickLinkId, string quickLinkTitle)
{
    QuickLink quickLinkInfo = new QuickLink
    {
        Id = quickLinkId,
        Title = quickLinkTitle,

        // For quicklinks, the supported FileTypes and DataFormats are set 
        // independently from the manifest
        SupportedFileTypes = { "*" },
        SupportedDataFormats = { StandardDataFormats.Text, StandardDataFormats.Uri, 
                StandardDataFormats.Bitmap, StandardDataFormats.StorageItems }
    };

    StorageFile iconFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.CreateFileAsync(
            "assets\\user.png", CreationCollisionOption.OpenIfExists);
    quickLinkInfo.Thumbnail = RandomAccessStreamReference.CreateFromFile(iconFile);
    shareOperation.ReportCompleted(quickLinkInfo);
}


Vergessen Sie nicht, dass Ihre App selbst für das Speichern der ID für den QuickLink und die damit zusammenhängenden Benutzerdaten verantwortlich ist. Wenn der Benutzer auf den QuickLink tippt, können Sie die zugehörige ID über die QuickLinkId-Eigenschaft des ShareOperation-Objekts abrufen

Zusammenfassung und nächste Schritte

Sie sollten nun wissen, wie Sie geteilte Inhalte empfangen und einen QuickLink erstellen, mit dem Benutzer Inhalte über Ihre App teilen können.

Weitere Informationen oder spezifische Beispiele zum Hinzufügen der Funktion zum Teilen zur App finden Sie in folgenden Themen:

Hinweis  Das Debuggen von Ziel-Apps zum Teilen unterscheidet sich vom Debuggen anderer Arten von Apps. Weitere Informationen erhalten Sie in Richtlinien zum Debuggen von Ziel-Apps.

Verwandte Themen

Auswählen von Datenformaten für die Freigabe
Richtlinien und Prüfliste zum Teilen von Inhalten
Schnellstart: Teilen von Inhalt

 

 

Anzeigen:
© 2014 Microsoft