aeihvw
Last Updated: February 25, 2016
·
5.909K
· xster

Sharing to Facebook/Twitter from Windows 8/WinRT App

Sharing on "Metro style"/"Windows Store" app is a bit different from what we used to. Instead of invoking it directly in code, Microsoft encourages us to use the centralised "charm" bar where we would then implement a page event handler to fill in details to share.

Picture

To personalise share details, we would fill a DataPackage that would then be used across various media such as email or message or other apps.

To start, you can use

DataTransferManager.GetForCurrentView();

to get the current page's DataTransferManager. The instance has an event called DataRequested that you can respond to to fill in details whenever the user chooses to share something via the charms bar.

So on OnNavigatedTo of the page, you can do

dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager,DataRequestedEventArgs>(dataTransferManager_DataRequested);

and declare

private void dataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
    DataPackage requestData = e.Request.Data;
    requestData.Properties.Title = something;
    requestData.SetText("something");
    requestData.Properties.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(someURL));
    if (!string.IsNullOrEmpty(article.URL)) requestData.SetUri(new Uri(someOtherURL));
}

There's of course more stuff you can set by referring to http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.datatransfer.datapackage

To get the charm bar share view to show up programmatically, you can use

DataTransferManager.ShowShareUI();

1 Response
Add your response

4811

FYI, People App takes only URI objects, so don't be surprised when it doesn't show in available targets.

over 1 year ago ·