Reference version

Expo Sharing iconExpo Sharing

GitHub

npm

A library that provides implementing sharing files.

Android
iOS
Web
Bundled version:
~13.1.2

expo-sharing allows you to share files directly with other compatible applications.

Sharing limitations on web

  • expo-sharing for web is built on top of the Web Share API, which still has very limited browser support. Be sure to check that the API can be used before calling it by using Sharing.isAvailableAsync().
  • HTTPS required on web: The Web Share API is only available on web when the page is served over https. Run your app with npx expo start --tunnel to enable it.
  • No local file sharing on web: Sharing local files by URI works on Android and iOS, but not on web. You cannot share local files on web by URI — you will need to upload them somewhere and share that URI.

Sharing to your app from other apps

Currently expo-sharing only supports sharing from your app to other apps and you cannot register to your app to have content shared to it through the native share dialog on native platforms. You can read more in the related feature request. You can setup this functionality manually in Xcode and Android Studio and create an Expo Config Plugin to continue using Expo Prebuild.

Installation

Terminal
npx expo install expo-sharing

If you are installing this in an existing React Native app, make sure to install expo in your project.

API

import * as Sharing from 'expo-sharing';

Methods

Sharing.isAvailableAsync()

Determine if the sharing API can be used in this app.

Returns:
Promise<boolean>

A promise that fulfills with true if the sharing API can be used, and false otherwise.

Sharing.shareAsync(url, options)

ParameterTypeDescription
urlstring

Local file URL to share.

options(optional)SharingOptions

A map of share options.

Default:{}

Opens action sheet to share file to different applications which can handle this type of file.

Returns:
Promise<void>

Types

SharingOptions

PropertyTypeDescription
anchor(optional){ height: number, width: number, x: number, y: number }
Only for:
iOS

set the anchor point for iPad

dialogTitle(optional)string
Only for:
Android
Web

Sets share dialog title.

mimeType(optional)string
Only for:
Android

Sets mimeType for Intent.

UTI(optional)string
Only for:
iOS

Uniform Type Identifier

  • the type of the target file.