When we view a photo, pdf, or any other files on iOS, it is possible to open the file in another app by clicking on "Open with...". And I would like to have my app in the list, for PDF files, PNG and JPEG.
I have tried everything I found on Google, and here is my file info.plist :
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>PDF</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string>
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>PNG</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>JPG</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpg</string>
</array>
</dict>
</array>
I have tried to change it with all I found on Internet, but my app never appears in the list.
Is there something else to do than modifying the file info.plist ?
Actually, I manage to open PDF file in my App only in SAFARI ! But it's not as I want :
When I view a PDF File in safari, I can see on the top "Open with", but on all other apps when I click on the button Open with, I can't see my app.
What I would like is this :
Thank you very much for your help :D
Regards
Related
My app can already receive PDFs, PNG, JPGs from other apps via CFBundleDocumetTypes - Definitions. This means, once you chose the share-Button of other apps, my app appears in the list. So far so good. Opening a saved screenshot on an iPad also presents a symbol of my app to put it to.
But if I take a screenshot and want to send it directly, my app does not appear as possible receiver. I first have to save it somewhere first. How can I tell iOS to show my app as receiver for just-made-screenshots, just out of the editing view of the screenshot-feature?
When I send it as mail-attachment, it shows up as a .jpeg. Here is an exempt of my info.plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>PDF</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string>
</array>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>PNG</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
</array>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>JPG</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
<string>public.jpg</string>
</array>
</dict>
</array>
Is that possible using the following ?
<dict>
<key>CFBundleTypeName</key>
<string>Open All Files</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>public.content</string>
<string>public.data</string>
</array>
</dict>
I know for photos its possible but how should I do it for youtube kindly suggest.
For video sharing you can use, "public.video (kUTTypeVideo)". For ex.,
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>Video</string>
<key>LSItemContentTypes</key>
<array>
<string>public.movie</string>
</array>
</dict>
You can find other document type identifiers here : DeclaredUniformTypeIdentifiers
I want my app to be in 'Open in' options for image.
I have used this code in my Info.plist
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Image</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.image</string>
</array>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>PNG image</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
</array>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>JPEG image</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
</array>
</dict>
</array>
In the application 'Inbox', on sharing an image, i can see my app 'Quotle' :
But in Apple's application 'Photo', i don't see my app :
What can i do to see my app in sharing menu into application 'Photo'?
In order to show your app in Photo's Share to list, you need to add a new target of Share Extension into your project, please refer the document for more info on how to add the Share Extension.
Good day, everyone.
I followed these two tutorials line by line, try to associate my app to the csv file (email app attachment), but I after I added these down below changes to my app's plist file, then build my app and run it my device (iPhone 4, iOS 7.0.4), nothing happens, I mean when I clicked on the .csv file in the email, my app still does not show up in the open-in available application list, I just don't know where I did wrong, or iOS 7 has different way doing this?
http://blog.spritebandits.com/2011/12/14/importing-csv-data-file-into-an-ios-app-via-email-attachment/
http://www.raywenderlich.com/1980/email-tutorial-for-ios-how-to-import-and-export-app-data-via-email-in-your-ios-app
this is what my plist changes (the new entries added followed by the tutorial) looks like:
here's the app setting screen:
and here's the xml version:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>CSV Document</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string></string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeDescription</key>
<string>CSV Document</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>Damian-s.${PRODUCT_NAME:rfc1034identifier}</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>csv</string>
<key>public.mime-type</key>
<string>application/inventorytodo</string>
</dict>
</dict>
</array>
You're missing the UTI type in your CFBundleDocumentTypes definition:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>CSV Document</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string></string>
</array>
</dict>
</array>
should be:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>CSV Document</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>Damian-s.${PRODUCT_NAME:rfc1034identifier}</string>
</array>
</dict>
</array>
I want to show the my app to the user when user use the open in function from the other app.
Here is my code.
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Image File</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
<string>public.jpg</string>
</array>
</dict>
</array>
What is wrong with that?
ScreeShot