I am using AVMulti so the user captures two images how can I access those images if there is only one url that stores the captured images for the lockScreenCapture extension ? Plus how can I detect if the user opened the app from the extension to be able to navigate the user to the right screen ?
Hello @EngOmarElsayed,
the function you are referring to in the UIApplicationDelegate is didFinishLaunchingWithOptions right ?
I am referring to application(_:continue:restorationHandler:).
the second question is that how can I access the images in the directory ? like how can I know the name of the front and the back image ? if you can provide more context on how I can access the images from the directory will be very helpful.
You determine the structure of data written to the sessionContentURL. For example:
// My custom SessionContent. let content = SessionContent(frontImage: "hello", backImage: "world") // Encoded as json. let json = try JSONEncoder().encode(content) // sessionContentURL/content.json let outputURL = session.sessionContentURL.appendingPathComponent("content", conformingTo: .json) // Writing my data to the url. try json.write(to: outputURL) // Creating my user activity. let activity = NSUserActivity(activityType: NSUserActivityTypeLockedCameraCapture) // opening the application from the extension. try await session.openApplication(for: activity)
Then, in the delegate method I referred to above, or if you are using SwiftUI onContinueUserActivity:
.onContinueUserActivity(NSUserActivityTypeLockedCameraCapture) { activity in let manager = LockedCameraCaptureManager.shared Task { for await update in manager.sessionContentUpdates { switch update { case .initial(urls: let urls): print("initial: \(urls)") case .added(url: let url): print("added \(url)") let contents = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: nil) // You should see the json file here. print("Contents: \(contents)") case .removed(url: let url): print("removed: \(url)") @unknown default: break } } } }
-- Greg