Reputation: 16168
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?
Upvotes: 2
Views: 5981
Reputation: 148
May I please ask, how are you accessing this file? "file:///var/mobile/Media/PhotoData/OutgoingTemp/11485686-0D4A-4637-AA50-B14D83E18B01/RenderedPhoto/IMG_4807.JPG" from your main app.
I am using onOpenUrl:
.onOpenURL { url in
// Handle the deep link URL here
if url.scheme == "PhotoEditor",
let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
let shareURLString = components.queryItems?.first(where: { $0.name == "share_url" })?.value
{
// Use the shared image URL in your app
// Example: pass it to a view model or trigger appropriate logic
let shareURL = URL(fileURLWithPath: shareURLString)
loadFrom(URLAdress: shareURL)
}
}
And this is my loadImage function:
DispatchQueue.global().async {
do {
if URLAdress.startAccessingSecurityScopedResource() {
let imageData = try Data(contentsOf: URLAdress)
if let loadedImage = UIImage(data: imageData) {
///My codes
}
}
}
} catch {
print("Error reading image data: \(error)")
Upvotes: 0
Reputation: 3355
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.
Upvotes: 1
Reputation: 404
Please follow the given link:- https://developer.apple.com/app-extensions/
Thank you.
Shriram
Upvotes: 0