Where developers come to connect, share, build and be inspired.

9

Sharing to Facebook/Twitter from Windows 8/WinRT App

3701 views

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

Comments

  • Photochooser-7ef7ade5-865a-4bc6-acc0-69d544b258ac_normal
    alexsorokoletov

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

Add a comment