Die Rückruffunktion von Universal Links wird in SceneDelegate nicht aufgerufen
Posted: 06 Jan 2025, 18:47
Gemäß meinem App-Projekt-Setup
habe ich folgende Funktionsaufrufe mit demselben Code, um RootVCs in SceneDelegate bzw. AppDelegate zu instanziieren
Um universelle Links zu implementieren, habe ich die folgende Rückruffunktion in meinem App Delegate
Diese Funktion von AppDelegate wird nur auf Geräten mit weniger als iOS 13 aufgerufen. Ich habe nach einem ähnlichen Callback-Äquivalent für SceneDelegate gesucht. Die nächstgelegene Funktion, die ich finden konnte, war diese Funktion.
Konfiguration: Xcode Version 11.5 zielt auf iOS 10+-Geräte ab.
Problem: Dieser spezielle Rückruf wird nur dann aufgerufen, wenn er vorhanden ist ist eine Instanz der App, die ausgeführt wird, bevor auf den Link geklickt wird. d. h. sobald die App-Instanz beendet wird, wird diese Funktion von SceneDelegate nicht aufgerufen und universelle Links funktionieren nicht für iOS13+-Geräte. Ich habe versucht, diesem Xcode 11 zu folgen – UISceneDelegate/SwiftUI unter iOS 13 deaktivieren, um den Scene Delegate vollständig zu entfernen. Am Ende wurde jedoch nur ein schwarzer Bildschirm angezeigt.
Frage: Was mache ich falsch und Was ist die mögliche Lösung?
habe ich folgende Funktionsaufrufe mit demselben Code, um RootVCs in SceneDelegate bzw. AppDelegate zu instanziieren
Code: Select all
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
}
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?)
-> Bool {
}
Code: Select all
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
//code to capture and setup universal link
}
Code: Select all
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
//code to capture and setup universal link
}
Problem: Dieser spezielle Rückruf wird nur dann aufgerufen, wenn er vorhanden ist ist eine Instanz der App, die ausgeführt wird, bevor auf den Link geklickt wird. d. h. sobald die App-Instanz beendet wird, wird diese Funktion von SceneDelegate nicht aufgerufen und universelle Links funktionieren nicht für iOS13+-Geräte. Ich habe versucht, diesem Xcode 11 zu folgen – UISceneDelegate/SwiftUI unter iOS 13 deaktivieren, um den Scene Delegate vollständig zu entfernen. Am Ende wurde jedoch nur ein schwarzer Bildschirm angezeigt.
Frage: Was mache ich falsch und Was ist die mögliche Lösung?