receive_sharing_intent
A flutter plugin that enables flutter apps to receive sharing photos, text or url from other apps.
1.9.0
96K downloads/mo
#1151 most downloaded on pub.dev
KasemJaffer/receive_sharing_intent
What this package is like to depend on
Last release 2 months ago
24 Jun 2026
Ships unpredictably
gaps range from 8 days to 2.9 years
Nearly every release is documented
notes for 38 of 41 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
41 releases · first in 2019
1 release in the last 12 months
see the full history below
Release timeline
41 releases · May 2019 to Jun 2026Releases
latest 41-
1.9.024 Jun 2026Release notes
Open source →Breaking changes
- Requires Flutter 3.38 or newer.
- iOS: Apps must now adopt a
SceneDelegatefor the newUIScenelifecycle — see the README and the official guide. - iOS: Now uses Swift Package Manager only (the CocoaPods podspec was removed). Enable it with
flutter config --enable-swift-package-managerand link thereceive-sharing-intentproduct in your Share Extension. - iOS: The Share Extension compose UI was rebuilt (see below).
presentationAnimationDidFinish(),navigationTitleandcharacterLimitwere removed — use the new override hooks instead. - iOS: Minimum deployment target raised to iOS 13.0.
iOS — new Share Extension compose UI
RSIShareViewControllerno longer subclasses the deprecatedSLComposeServiceViewController; it's now a plainUIViewControllerfollowing Apple's modern model.shouldAutoRedirect() == true(default): no UI is shown — the old flash of the dimmed white system sheet is gone and the extension redirects straight into the host app.shouldAutoRedirect() == false: a built-in compose sheet (RSIComposeView) is shown — a bottom card with a grabber, circular close button, "Send" button, an auto-focused message field and a thumbnail preview of the first shared item. Tapping the dimmed backdrop cancels.- Customise it by overriding
placeholder,sendButtonTitle,contentText,isContentValid(),didSelectPost(),didSelectCancel(),cancel()orsaveAndRedirect(message:).
iOS — other
- Adopted Apple's
UIScenelifecycle: the plugin conforms toFlutterSceneLifeCycleDelegate, registers viaaddSceneDelegate, and handles shared URLs through the scene delegate. - Consolidated into a single
ReceiveSharingIntentPluginSwift class (the Objective-C bridge is gone).SwiftReceiveSharingIntentPluginremains as a backward-compatible type alias.
Android
- Migrated to Flutter's Built-in Kotlin: the plugin no longer applies the Kotlin Gradle Plugin (KGP) itself — Flutter's Gradle plugin applies
kotlin-androidautomatically. This silences the upcoming KGP deprecation warning and keeps the plugin building on future Flutter versions. - Upgraded Android Gradle Plugin to 9.2.1, Gradle to 9.4.1 and Kotlin to 2.4.0.
- Bumped
compileSdkto 37, raisedminSdkto 21 and migrated to the modern KotlincompilerOptionsDSL (JVM target 17).
Full Changelog: 1.8.1...1.9.0
What's Changed
- Fix Inconsistent JVM-target compatibility by @ad-angelo in #333
New Contributors
- @ad-angelo made their first contribution in #333
Full Changelog: 1.8.1...1.9.0
Release notes
Open source →Breaking changes
- Requires Flutter 3.38 or newer.
- iOS: Apps must now adopt a
SceneDelegatefor the newUIScenelifecycle — see the README and the official guide. - iOS: Now uses Swift Package Manager only (the CocoaPods podspec was removed). Enable it with
flutter config --enable-swift-package-managerand link thereceive-sharing-intentproduct in your Share Extension. - iOS: The Share Extension compose UI was rebuilt (see below).
presentationAnimationDidFinish(),navigationTitleandcharacterLimitwere removed — use the new override hooks instead. - iOS: Minimum deployment target raised to iOS 13.0.
iOS — new Share Extension compose UI
RSIShareViewControllerno longer subclasses the deprecatedSLComposeServiceViewController; it's now a plainUIViewControllerfollowing Apple's modern model.shouldAutoRedirect() == true(default): no UI is shown — the old flash of the dimmed white system sheet is gone and the extension redirects straight into the host app.shouldAutoRedirect() == false: a built-in compose sheet (RSIComposeView) is shown — a bottom card with a grabber, circular close button, "Send" button, an auto-focused message field and a thumbnail preview of the first shared item. Tapping the dimmed backdrop cancels.- Customise it by overriding
placeholder,sendButtonTitle,contentText,isContentValid(),didSelectPost(),didSelectCancel(),cancel()orsaveAndRedirect(message:).
iOS — other
- Adopted Apple's
UIScenelifecycle: the plugin conforms toFlutterSceneLifeCycleDelegate, registers viaaddSceneDelegate, and handles shared URLs through the scene delegate. - Consolidated into a single
ReceiveSharingIntentPluginSwift class (the Objective-C bridge is gone).SwiftReceiveSharingIntentPluginremains as a backward-compatible type alias.
Android
- Migrated to Flutter's Built-in Kotlin: the plugin no longer applies the Kotlin Gradle Plugin (KGP) itself — Flutter's Gradle plugin applies
kotlin-androidautomatically. This silences the upcoming KGP deprecation warning and keeps the plugin building on future Flutter versions. - Upgraded Android Gradle Plugin to 9.2.1, Gradle to 9.4.1 and Kotlin to 2.4.0.
- Bumped
compileSdkto 37, raisedminSdkto 21 and migrated to the modern KotlincompilerOptionsDSL (JVM target 17).
-
1.8.121 Oct 2024Release notes
Open source →What's Changed
- Fix iOS18 open URL by @dmitry-kotorov in #328
New Contributors
- @dmitry-kotorov made their first contribution in #328
Full Changelog: 1.8.0...1.8.1
-
1.8.029 Apr 2024Release notes
Open source →- Added support for cached images on iOS such as shared images from a Screenshot.
Release notes
Open source →- Added support for cached images on iOS such as shared images from a Screenshot.
-
1.7.009 Apr 2024Release notes
Open source →- Added
ReceiveSharingIntent.setMockValuesmethod to set mock values for testing purposes.
ReceiveSharingIntent.setMockValues( initialMedia: [], mediaStream: Stream.empty(), );
Breaking change
- Use instance getter i.e.
ReceiveSharingIntent.instance.getInitialMedia()instead ofReceiveSharingIntent.getInitialMedia()
Release notes
Open source →- Added
ReceiveSharingIntent.setMockValuesmethod to set mock values for testing purposes.
ReceiveSharingIntent.setMockValues( initialMedia: [], mediaStream: Stream.empty(), ); - Added
-
1.6.801 Apr 2024 -
1.6.702 Feb 2024 -
1.6.629 Jan 2024 -
1.6.529 Jan 2024 -
1.6.426 Jan 2024Release notes
Open source →- Added a flag to disable the automatic closing of the share extension after sharing.
class ShareViewController: RSIShareViewController { // Use this method to return false if you don't want to redirect to host app automatically. // Default is true override func shouldAutoRedirect() -> Bool { return false } }
- Added new field
messageto the SharedMediaFile class.
Release notes
Open source →- Added a flag to disable the automatic closing of the share extension after sharing.
class ShareViewController: RSIShareViewController { // Use this method to return false if you don't want to redirect to host app automatically. // Default is true override func shouldAutoRedirect() -> Bool { return false } }- Added new field
messageto the SharedMediaFile class.
-
1.6.326 Jan 2024Release notes
Open source →- Updated readme iOS section, rearranged the steps to properly setup the plugin and added a new step #7
Release notes
Open source →- Updated readme iOS section, rearranged the steps to properly setup the plugin and added a new step #7
-
1.6.226 Jan 2024Release notes
Open source →Requires Swift 5.0
Fix backward compatibility down to iOS 8.0
Use UTType for iOS 14.0 and aboveRelease notes
Open source →- Requires Swift 5.0
- Fix backward compatibility down to iOS 8.0
- Use UTType for iOS 14.0 and above
-
1.6.126 Jan 2024 -
1.6.025 Jan 2024Release notes
Open source →Breaking changes
- All files types now come through
getInitialMediaandgetMediaStream - Your
ShareViewControllerclass should now inherit fromRSIShareViewController. Eliminating the need to copy the whole class again. Please check the example project for more details. - Removed
getInitialText,getInitialTextAsUri,getTextStreamandgetTextStreamAsUrimethods. Please usegetInitialMediaandgetMediaStreaminstead.
- All files types now come through
-
1.5.424 Jan 2024 -
1.5.324 Jan 2024Release notes
Open source →- Update readme
- Code refactor, remove unnecessary semicolon and initialization of optional fields
-
1.5.224 Jan 2024 -
1.5.123 Jan 2024 -
1.5.022 Jan 2024Release notes
Open source →- Add support for custom group ID for iOS
- Update android gradle build tools to 7.3.1
- Replace deprecated jcenter with mavenCentral
- Update android to use compileSdkVersion 34
-
1.4.514 Mar 2021 -
1.4.406 Mar 2021Release notes
Open source →- Enabled null safety
- Fix frozen app after sharing. Fix requires you to update your Sharing Extension Class (Check example project)
- Fix regression regarding link propagation
-
1.4.322 Jan 2021 -
1.4.204 Nov 2020Release notes
Open source →- Migrate to flutter android embedding v2
- Fix crash while getting raw files path on Android
-
1.4.127 Aug 2020Release notes
Open source →- Preserve original file name
Note. Updating your Sharing Extension Class is required (please check that in the example project)
-
1.4.019 Apr 2020Release notes
Open source →- Added support for sharing any type of file
Breaking changes
- In your project
ios/Runner/Info.plistplease change 'SharePhotos' to 'ShareMedia' as follows
<key>CFBundleURLSchemes</key> <array> <string>ShareMedia</string> -
1.4.0+119 Apr 2020Nothing published for this version
-
1.4.0+219 Apr 2020Nothing published for this version
-
1.3.311 Mar 2020 -
1.3.214 Nov 2019Release notes
Open source →- Fix Some photos and videos have wrong extension names
- Fix sharing dialog doesn't close properly
Note. Both fixes require you to update your Sharing Extension Class (please check that in the example project)
-
1.3.125 Sep 2019 -
1.3.1+126 Sep 2019 -
1.3.024 Jul 2019Release notes
Open source →- Video support.
Breaking changes
Updated
ShareViewController.swiftPlease copy the whole class again as there are many code changes.getInitialImagechanged togetInitialMediafor images and videosgetImageStreamchanged togetMediaStreamfor images and videos- both
getInitialMediaandgetMediaStreamnow return video duration and thumbnail along with the shared file path
Removed
getInitialImageAsUrigetImageStreamAsUri
-
1.2.0+110 Jul 2019 -
1.1.508 Jul 2019Release notes
Open source →- Example project updated. Check the method [handleImages] in example/Sharing Extension/ShareViewController.swift
- Fix some images are not successfully shared on iOS
-
1.1.425 Jun 2019 -
1.1.325 Jun 2019Release notes
Open source →- Fix sharing image does not work sometimes on iOS and on Android when sharing from google photos (cloud)
-
1.1.223 Jun 2019Release notes
Open source →- Return absolute path for images instead of a reference that can be used directly with File.dart
- Refactor code
-
1.0.120 Jun 2019 -
1.0.015 Jun 2019 -
0.9.212 Jun 2019 -
0.9.130 May 2019 -
0.9.030 May 2019Nothing published for this version