【发布时间】:2017-10-03 23:57:20
【问题描述】:
我正在尝试从在 Windows 10 桌面上运行的 UWP 应用沙箱共享文件。
按照此页面上的 MS 文档,实现似乎相当简单;但是,我遇到了问题https://docs.microsoft.com/en-us/windows/uwp/app-to-app/share-data
根据文章中的说明,我在班级的 c-tor 中创建了 DataTransferManager 并附加了 DataRequested 事件:
DataTransferManager dataTransferManager;
public MainPage()
{
this.InitializeComponent();
...
dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.OnDataRequested);
}
接下来,在从后台线程调用的方法中,我调用 ShowShareUI 确保它在主线程上执行
Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
DataTransferManager.ShowShareUI(); //THIS CALL SHOWS A POPUP AND IMMEDIATELLY CLOSES IT
}).AsTask().Wait();
然后在我的 OnDataRequested 事件中,添加我要共享的文件:
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);
}
但什么也没发生。我没有机会在打开 1/2 秒然后关闭的对话框中选择任何内容。这是对话框的样子,它在打开后几乎立即打开和关闭,它只显示“此应用现在无法共享”。
【问题讨论】:
标签: uwp windows-10-universal data-sharing