I have implemented a share Extension on my app. And on main app, I am using onOpenURL to access the shared file.
Example url = "myURlScheme://?share_url=file:///var/mobile/Media/PhotoData/OutgoingTemp/FA5F8F47-37E0-4E88-AF3B-C63B88BE6443/IMG_0247.JPG"
My onOpenURL:
.onOpenURL { url in
// Handle the deep link URL here
if url.scheme == "myURlScheme",
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)
}
}
loadFrom Function:
DispatchQueue.global().async {
do {
if URLAdress.startAccessingSecurityScopedResource() {
let imageData = try Data(contentsOf: URLAdress)
if let loadedImage = UIImage(data: imageData) {
DispatchQueue.main.async {
// Update UI or perform further processing with loadedImage
}
}
}
} catch {
print("Error reading image data: \(error)")
}