2012-11-06 7 views
6

Zuerst teile ich den Inhalt von meiner Windows 8 U-Bahn-Anwendung zu einer anderen App (zum Beispiel Mailto App) so:Ist es möglich, einen Betreff für die Mail-App in der Windows 8-Metro-Anwendung festzulegen, wenn ich einen Freigabevertrag verwende und Dateien gemeinsam nutze?

Jetzt teile ich Dateien zu mailto app mit Freigabe Vertrag und Freigabe von Dateien aus meiner Anwendung,

wollte ich wissen, wenn: -

  1. Kann ich das unter den mailto App gesetzt, auf die ich den Austausch von Dateien als attachement zu diesem mailto App, wenn ja mich bitte wissen lassen, wie kann ich mach das?

  2. Wenn nicht, lassen Sie mich bitte wissen, was ist die Arbeit um?

Antwort

3

Ab sofort ist es nicht möglich.

Windows 8 hat kürzlich eine neue API namens Protokollaktivierung eingeführt. Mit der Protokollaktivierung können Sie andere Windows 8-Anwendungen aus Ihrer Anwendung starten und Daten weitergeben. Microsoft arbeitete auf Maps-App und Sie können jetzt Informationen an die Map App passieren, wie hier (für Karten-Anwendung URI-Schema) gezeigt http://msdn.microsoft.com/en-us/library/windows/apps/jj635237.aspx

einen Code Durchlauf Jetzt bei http://blog.jerrynixon.com/2012/10/walkthrough-using-windows-8-custom.html

Siehe, ich bin sicher, dass sehr bald, werden Sie Sehen Sie sich einige benutzerdefinierte Parameter für die Mail-App an, die Sie mithilfe der Protokollaktivierung von Ihrer App aus übergeben können.

Just my 2 cents

1

Nein, dies ist momentan nicht möglich.

1

Ich kann die Frage nicht richtig sein zu verstehen, aber wenn alles, was Sie tun möchten, ist die Fähigkeit, haben die „Share“ -Knopf auf der Charms Bar zu klicken, dann wählen Sie die „Mail "app und haben die Fähigkeit, die Betreffzeile zu füllen, die angezeigt wird, wenn die Freigabe der Freigabe der" Mail "-App angezeigt wird, dann können Sie diesem Ansatz folgen:

private DataTransferManager dataTransferManager; //class member 

// put the following code block wherever you need it: 

// Register as a share source 
if (this.dataTransferManager == null) 
{ 
    this.dataTransferManager = DataTransferManager.GetForCurrentView(); 
    this.dataTransferManager.DataRequested -= this.OnDataRequested; 

    try 
    { 
     this.dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.OnDataRequested); 
    } 
    catch 
    { 
    }; 
} 

private void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e) 
{ 
    DataRequest request = e.Request; 
    DataRequestDeferral deferal = request.GetDeferral(); 

    try 
    { 
     // this property will set your subject line 
     // it will also be shown on the Share fly-out (right below the main 
     // heading that says 'Share' 
     request.Data.Properties.Title = GetCustomMailSubjectLine(); 

     if (string.IsNullOrEmpty(request.Data.Properties.Title)) 
     { 
      request.FailWithDisplayText("An operation failed. Please try again."); 
     } 
     else 
     { 
      // this will also be shown on the Share fly-out, right below the 'Title' 
      // property set above 
      request.Data.Properties.Description = GetMyAppsSharingDesciption(); 

      // use request.Data.SetDataProvider() if your data needs to be asynchronously retrieved 
      // otherwise directly use request.Data.SetData() (or one of the other 
      //methods depending on what you need) 

      request.Data.SetDataProvider(StandardDataFormats.Html, RetrieveSharedData); 
     } 
    } 
    finally 
    { 
     deferal.Complete(); 
    } 
} 

private async void RetrieveSharedData(DataProviderRequest request) 
{ 
    DataProviderDeferral deferal = request.GetDeferral(); 

    try 
    { 
     // this will set your email's body 
     request.SetData(await GetCustomMailBodyAsync()); 
    } 
    finally 
    { 
     deferal.Complete(); 
    } 
}