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.
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_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();