首页 > 解决方案 > 在 SceneDelegate 中未调用通用链接回调函数

问题描述

根据我的 App 项目设置,我使用相同的代码进行以下函数调用,分别在 SceneDelegate 和 AppDelegate 中实例化 rootVC

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

}

func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?)
        -> Bool {
}




为了实现通用链接,我的 App Delegate 中有以下回调函数</p>

func application(_ application: UIApplication,
                     continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
//code to capture and setup universal link
}


AppDelegate 中的此函数仅在少于 iOS 13 的设备中调用。我为 SceneDelegate 寻找类似的回调等效项,我能找到的最接近的是此函数。</p>

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
//code to capture and setup universal link
}


<strong>配置:Xcode 11.5 版面向 iOS 10+ 设备。<strong>问题:只有在单击链接之前有一个应用程序实例正在运行时,才会调用此特定回调。即一旦 App 实例被杀死,来自 SceneDelegate 的这个函数就不会被调用,并且通用链接不适用于 iOS13+ 设备。我尝试遵循此Xcode 11 - 在 iOS 13 上选择退出 UISceneDelegate/SwiftUI以完全删除场景委托,但最终只有黑屏。 问题:我做错了什么,可能的解决方法是什么?</p>

标签: iosswiftswift3deep-linkingios-universal-links

解决方案


推荐阅读