KasemJaffer / receive_sharing_intent

A Flutter plugin that enables flutter apps to receive sharing photos, text and url from other apps.
Apache License 2.0
325 stars 372 forks source link

Share extension limitations from Apple #232

Open objectorientedperson opened 1 year ago

objectorientedperson commented 1 year ago

Firstly thanks for the library.

As we try to implement share extension in our app, we saw that it firstly opens native share extension for a second then open the app. In this manner we don't have ability to customize the UI of share extension and also when we checked the documentation of Apple, it states that:

The dotted line in Figure 2-2 represents the limited interaction available between an app extension and its containing app. A Today widget (and no other app extension type) can ask the system to open its containing app by calling the openURL:completionHandler: method of the NSExtensionContext class.

Apps hosting or containing extensions must comply with the App Extension Programming Guide or the Safari App Extensions Guide and should include some functionality, such as help screens and settings interfaces where possible. You should clearly and accurately disclose what extensions are made available in the app’s marketing text, and the extensions may not include marketing, advertising, or in-app purchases.

Links: 4.4 Extensions https://developer.apple.com/app-store/review/guidelines/#business

https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple_ref/doc/uid/TP40014214-CH2-SW2

Now we are highly concerned about if we distribute our app to AppStore with this library/logic we can be banned. Is there a way to customize the share extension on Flutter side, rather than opening the app?

Thanks

nilekell commented 10 months ago

Also concerned, what did you end up doing? @objectorientedperson

objectorientedperson commented 10 months ago

@nilekell what wrote our own share extension. Unfortunately this library is not good for iOS.

nilekell commented 10 months ago

I see. I managed to get this library working for me on iOS reliably. However the biggest upset is that the share target doesn't open within the app, but redirects to your app, where you have to show a screen. Unfortunately, I think to get something like this would always require native code anyway.

objectorientedperson commented 10 months ago

Yes, we also did it, but like you said it redirects to your app which made us curious if Apple could accept and release our build on the market. So we 'had to' go with native.