Bug Report
Plugin(s)
@capacitor/share
Capacitor Version
💊 Capacitor Doctor 💊
Latest Dependencies:
@capacitor/cli: 7.4.3
@capacitor/core: 7.4.3
@capacitor/android: 7.4.3
@capacitor/ios: 7.4.3
Installed Dependencies:
@capacitor/ios: not installed
@capacitor/cli: 7.4.3
@capacitor/core: 7.4.3
@capacitor/android: 7.4.3
[success] Android looking great! 👌
Platform(s)
Android
Current Behavior
In my app I have both outgoing + incoming share functionality. When I try to share anything to the same app, the plugin's Android implementation becomes stuck in some "in-progress" state, and subsequent share calls immediately fail with error:
Can't share while sharing is in progress
Expected Behavior
All subsequent shares from the app into same app work OK.
Code Reproduction
I've prepared reproduction repo - please check out https://github.com/dmitry-salnikov/capacitor-share-plugin-bug-reproduction
Other Technical Details
Android only, everything works OK on iOS.
Additional Context
The problem
- Android tries to launch
MainActivity with the ACTION_SEND intent.
- Because
launchMode="singleTask", Android doesn't create a new activity instance. Instead, it reuses the existing task and brings it to the front.
- Since the activity never finishes (it's the same instance),
activityResult() is never called.
- This way,
isPresenting flag isn't reset, and all subsequent calls to share() would throw error Can't share while sharing is in progress.
The solution
Handle incoming share intent in SharePlugin's code to reset isPresenting flag and resolve plugin call, e.g.:
@Override
protected void handleOnNewIntent(Intent intent) {
if (isPresenting && intent != null && Intent.ACTION_SEND.equals(intent.getAction())) {
PluginCall call = bridge.getSavedCall("activityResult");
if (call != null) {
call.resolve(new JSObject().put("activityType", ""));
}
isPresenting = false;
}
}
Bug Report
Plugin(s)
@capacitor/share
Capacitor Version
Platform(s)
Android
Current Behavior
In my app I have both outgoing + incoming share functionality. When I try to share anything to the same app, the plugin's Android implementation becomes stuck in some "in-progress" state, and subsequent share calls immediately fail with error:
Expected Behavior
All subsequent shares from the app into same app work OK.
Code Reproduction
I've prepared reproduction repo - please check out https://github.com/dmitry-salnikov/capacitor-share-plugin-bug-reproduction
Other Technical Details
Android only, everything works OK on iOS.
Additional Context
The problem
MainActivitywith theACTION_SEND intent.launchMode="singleTask", Android doesn't create a new activity instance. Instead, it reuses the existing task and brings it to the front.activityResult()is never called.isPresentingflag isn't reset, and all subsequent calls toshare()would throw errorCan't share while sharing is in progress.The solution
Handle incoming share intent in SharePlugin's code to reset
isPresentingflag and resolve plugin call, e.g.: