Search code examples
iosios8-share-extension

iOS how to access private file for sharing extension


I have been trying to access a file with my share extension, if the file is from photos app, I can access it, the path for the file is:

file:///var/mobile/Media/PhotoData/OutgoingTemp/11485686-0D4A-4637-AA50-B14D83E18B01/RenderedPhoto/IMG_4807.JPG

but when I try to access a file on the "private" path, I cannot access it, like an MS word file:

file:///private/var/mobile/Containers/Data/Application/196D7E75-87B6-4C69-B97A-74E58DF4AD65/tmp/ShareAttachments/%7BE73A233D-D10E-814D-AEB1-0C8C8AC9BFAA%7D/Document%20(7).docx

So my question is, how to access the file? apps like whatsApp or slack can have access to the file and attach it...

How to access this file? are they using "app groups"? how do they get the id for the app group? or how to access the file?


Solution

  • For Share Extension, you need to get the file from NSItemProvider, which is passed by the host app to your share extension.

    For a file, it may be a Data type or a URL type. If it is data, you need to cast it to the type you need. If it is a url, you can load it.