I'm trying to register my app for all possible file types. I added the following to my info.plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>public.data</string>
<key>LSItemContentTypes</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
</dict>
</array>
If I now open a PDF in Safari and tap Safari's "Share" button, my app is not offered. However if I tap the PDF itself, a button "Open In" appears on top and there my app is listed.
This is not a real problem but it prevents users to import photos into my app, because there is no "Open In" menu in the Photos app.
Can I register for the "Share" menu too somehow?
Unfortunately this is not possible, because:
The share screen in Safari is using UIActivityViewController
to display a number of activities that can be performed with the page. Those activities are defined in UIActivity.h
and are usually the system-defined activities such as Post to Facebook, Post to Twitter, Message, Print, etc.
For an non-system defined activity to appear in that screen, one has to create a custom UIActivity
subclass and then initialize the UIActivityViewController
with an array of these.
The "Open In..." screen on the other hand looks similar but is using a UIDocumentInteractionController
which displays apps that can open the given URL/UTI (don't Google UTI...)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With