Windows Phone 8.1(WinRT)共享任务

时间:2015-05-09 22:02:29

标签: c# windows-runtime windows-phone-8.1

我想在我的WP8.1应用程序(WinRT)上使用简单的共享任务。 Silverlight的代码就像这样

ShareStatusTask share = new ShareStatusTask();
share.Status = "some text";
hare.Show();

但它不适用于winRT。所以基本上我需要调用该应用程序选择器来选择您想要共享字符串的应用程序。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

Windows Phone 8.1 分享 新的共享方式与Windows商店应用程序中的方式类似。 Windows可以询问程序是否有任何内容可以分享,以及可能是什么。为此,您需要在视图中实现一个函数,该函数可以在DataTransferManager中共享和设置它。完整的代码可能如下所示:

 protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // Register the current page as a share source.
    _dataTransferManager = DataTransferManager.GetForCurrentView();
    _dataTransferManager.DataRequested += OnDataRequested;
}

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    // Unregister the current page as a share source.
    _dataTransferManager.DataRequested -= OnDataRequested;
}

protected void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
    e.Request.Data.Properties.Title = "Some title";
    e.Request.Data.Properties.Description = "Some description"; // Optional 
    e.Request.Data.SetUri(new Uri("http://www.some_uri.com"));
}
In the example we use the SetUri to share an Uri. There are many different shares which is used to share different things:

 SetBitmap(RandomAccessStreamReference value)

SetApplicationLink(Uri value)

SetData(string formatId, object value)

SetDataProvider(string formatId, DataProviderHandler delayRenderer)

SetStorageItems(IEnumerable value)

SetStorageItems(IEnumerable value, bool readOnly)

SetText(string value)

SetUri(Uri value)

SetWebLink(Uri value)

SetHtmlFormat(string value)

SetRtf(string value)

如果OnDataRequested需要一点时间,您可以使用延迟告诉操作系统您的应用程序尚未停止工作。您还可以从代码中调用共享视图来显示它。例如,如果您在菜单中共享并希望在用户选择它时显示它。当你必须从某个地方调用这个函数时:

DataTransferManager.ShowShareUI();