【发布时间】:2017-08-08 23:31:27
【问题描述】:
我用一个按钮创建了一个非常简单的 UWP 应用程序。单击它应该会显示内置的共享弹出窗口以共享PDF文件。
事实上,我让它适用于 Windows 10(桌面),但它不适用于移动设备(弹出窗口没有出现在屏幕上)。
PDF 文件以字节数组的形式出现(因为它将来自远程服务)。
这是 MainPage.xaml.cs
中的代码public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
DataTransferManager.GetForCurrentView().DataRequested += OnDataRequested;
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
// This should come from a service
PdfBytes = await Microsoft.Toolkit.Uwp.StorageFileHelper.ReadBytesFromPackagedFileAsync("Document.pdf");
}
public byte[] PdfBytes { get; set; }
private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
var deferral = args.Request.GetDeferral();
var si = await StorageFile.CreateStreamedFileAsync("Document.pdf", stream =>
{
var writeStream = stream.AsStreamForWrite();
writeStream.Write(PdfBytes, 0, PdfBytes.Length);
stream.Dispose();
}, null);
args.Request.Data.Properties.Title = "PDF Document";
args.Request.Data.Properties.Description = "Some description";
args.Request.Data.SetStorageItems(new IStorageItem[] { si });
deferral.Complete();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
DataTransferManager.ShowShareUI();
}
}
正确吗?如果不是,我应该如何共享 PDF(从它的字节)?
【问题讨论】:
-
也许这个答案对你有用:stackoverflow.com/a/30203936/1406798
-
嗨,在我的应用程序中,我也使用了共享。它适用于桌面和移动。不同之处在于:而不是 new IStorageItem[] { si } 我使用 new List
list = new List ();列表。添加(文件);其中 File 是一个 StorageFile。还要检查您的程序集。你有添加移动扩展吗?!
标签: c# .net uwp win-universal-app