Guidelines for sharing content

Users can share content from your Windows Universal app and receive shared content from other installed apps with the Share contract. You can register your app as a share source, share target, or both. If you'd like the share feature in your app, you'll need to provide an entry point for the share experience.

If you'd like a more detailed overview of the sharing process, see Adding share (XAML) or Sharing and receiving content (HTML).

Examples

Here's the Share flyout that appears when the user chooses "Tweet@rama" from the list of share targets.

Share target app user interface

Lengthy share operations

Here's an example of a Share flyout completing lengthy share operations. Note the indeterminate progress bar and informative error message displayed by the target app when sharing failed. See the Guidelines for progress controls for more info.

Screen shots showing a progress notification in the share window

Recommendations

Source apps

  • Share content in the format intended by the user. For example, if a user selects a portion of a webpage to share, don't share a link to the entire webpage. Instead share the selected text.
  • Provide a description that indicates what the user is sharing. For example, if the user is sharing a webpage, add a sentence that includes the URL of the page. If an image is being shared, include a description or title for the image.
  • If a user selects a portion of the displayed app content, preserve this selection after the Share flyout (window) closes. This helps users if they want to modify their selection, or share the same content with multiple targets.
  • Share links to online versions of local content rather than sharing a copy of local, downloaded content. For example, suppose a news site creates its own news app but also publishes the same articles on its website. If a user wants to share an article with a social networking site, the app should share links to the online version of the article that the user is currently viewing.
  • Inform the user when sharing can't be completed. If a particular sharing operation fails, display a message in the Share flyout that describes the problem and, if applicable, how the user can solve it. The DataRequest object supports a FailWithDisplayText method that is useful in this circumstance.
  • If your app supports a way to copy data in the app, you should also provide a way to share that same data.
  • Set properties to supply target apps with useful info about the content a user wants to share. See DataPackage.DataPackagePropertySet to learn about the available properties.

Target apps

  • Keep the look and feel the same between your target app and your primary app. The user interface of your target app should feel familiar to people who frequently use your primary app.
  • If your app is both source and target for a particular data format, then it appears by default in the list of share targets each time people share from your app. If it doesn't make sense for a user to share content using the same app, display an error message prompting the user to select a different target app.
  • Remove links that lead users away from the sharing experience. For example, if your target app has links that lead to other areas of your app (such as to a home page), you should remove or hide them so the user doesn't leave the sharing experience accidentally.
  • Previews should match the actual content whenever possible. If your app includes a preview of what the user is sharing, that preview should match what will actually be shared as much as possible.
  • Acknowledge user actions. Let them know that the system is responding to their action—for example, through an inline message—before closing the share pane. This helps give the user confidence that their share started successfully.

For developers (XAML)

ShareOperation

DataPackage

QuickLink

Adding share (overview)

Quickstart: Sharing content

Quickstart: Receiving shared content

For developers (HTML)

ShareOperation

DataPackage

QuickLink

Sharing and receiving content (overview)

Quickstart: Sharing content

Quickstart: Receiving shared content