Ich versuche, eine Datei von meiner UWP App Sandbox zu teilen.UWP DataTransferManager ShowShareUI() öffnet Sharing-Dialog mit „Diese App ist gerade nicht teilen kann“ und schließt es sofort nach
Nach MS-Dokumentation auf dieser Seite scheint die Implementierung ziemlich geradlinig zu sein; aber ich habe Probleme https://docs.microsoft.com/en-us/windows/uwp/app-to-app/share-data
I erstellt DataTransferManager und befestigt DataRequested Ereignis in c-tor meiner Klasse nach Erklärung für den Artikel:
DataTransferManager dataTransferManager;
public MainPage()
{
this.InitializeComponent();
...
dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.OnDataRequested);
}
Als nächstes wird in einem Verfahren, das von Hintergrund-Thread aufgerufen wird ich rufe ShowShareUI sicherstellen, dass es auf dem Hauptthread führt
Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() =>
{
DataTransferManager.ShowShareUI(); //THIS CALL SHOWS A POPUP AND IMMEDIATELLY CLOSES IT
}).AsTask().Wait();
Da ist in meinem OnDataRequested Ereignis, füge ich die Datei möchte ich teilen:
private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
// get the file from application sandbox
StorageFile attachmentFile = await StorageFile.GetFileFromPathAsync(@"C:\Users\ME\AppData\Local\Packages\f040f23f-....-84\LocalState\logs\MYLOG.log");
DataRequest request = args.Request;
request.Data.Properties.Title = "My Log File";
request.Data.Properties.Description = "Sharing MYLOG file.";
List<IStorageItem> storage = new List<IStorageItem>()
{
attachmentFile
};
request.Data.SetStorageItems(storage);
}
aber nichts passiert. Ich hatte keine Möglichkeit, irgendetwas in dem Dialog auszuwählen, der sich für eine halbe Sekunde öffnete und schloss. So sieht der Dialog aus, er öffnet und schließt fast sofort nach dem Öffnen, er zeigt nur "Diese App kann momentan nicht teilen".
Ich hatte das gleiche Problem. Löste es Entfernen ** request.FailWithDisplayText() ** – Adriano
Wie ist das mit diesem Problem verbunden? Tx – pixel