如何从 IOS 共享扩展访问文件(图像)

Hri*_*ury 5 uikit ios swift ios8-share-extension swiftui

我在我的应用程序上实现了共享扩展。在主应用程序上,我使用 onOpenURL 来访问共享文件。

示例 url =“myURlScheme://?share_url=file:///var/mobile/Media/PhotoData/OutgoingTemp/FA5F8F47-37E0-4E88-AF3B-C63B88BE6443/IMG_0247.JPG”

我的 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)
            }
        }
Run Code Online (Sandbox Code Playgroud)

加载函数:

    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)")
       }
Run Code Online (Sandbox Code Playgroud)