私は単一のボタンで非常に単純なUWPアプリケーションを作成しました。 をクリックすると、組み込まれた共有ポップアップがのPDFファイルを共有するように表示されます。Windows 10 MobileでUWP共有機能が動作しない
実際、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を(バイトから)共有するべきですか?
多分この答えはあなたのために便利です:http://stackoverflow.com/a/30203936/1406798 –
こんにちは、私のアプリケーションでも共有を使用しました。それはデスクトップとモービルで動作します。違いは、新しいIStorageItem [] {si}新しいList list =新しいList ()を使用しました。 list.Add(ファイル); FileはStorageFileです。あなたのアセンブリもチェックしてください。モバイルエクステンションを追加しましたか? –
thezapper