You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS通用链接回调:AppDelegate与SceneDelegate调用相关问题咨询

iOS通用链接回调:AppDelegate与SceneDelegate的处理逻辑

问题1:能否让AppDelegate继续处理通用链接?双代理成因与同时调用风险?

  • 无法强制让AppDelegate处理通用链接回调(针对iOS 13+采用Scene架构的应用)。苹果在iOS 13引入多场景(Scene)架构后,将用户活动(包括通用链接)的处理逻辑从AppDelegate转移到SceneDelegate,这是系统层面的架构设计变更,目的是支持多窗口、多场景的应用模式。
  • 双代理相关的成因:如果你的应用同时兼容iOS 13之前(无Scene)和iOS 13+(有Scene)版本,或项目中同时保留了AppDelegate和SceneDelegate的实现,但在iOS 13+系统上,只要应用启用了Scene配置(Info.plist中包含UIApplicationSceneManifest),系统就会优先将通用链接回调发送给SceneDelegate,不会触发AppDelegate的对应方法。
  • 不存在两者同时被调用的风险。iOS系统会根据应用是否启用Scene架构决定回调路径:启用Scene的iOS 13+设备上,仅SceneDelegate接收回调;未启用Scene或iOS 12及以下设备上,由AppDelegate处理。

问题2:是否存在SceneDelegate不被调用,转而由AppDelegate处理的场景?能否仅依赖SceneDelegate?

  • 以下场景会由AppDelegate处理通用链接:
    • 运行在iOS 12及以下系统的设备:这些系统不支持Scene架构,通用链接回调只会走AppDelegate的application:willContinueUserActivityWithType:和application:continueUserActivity:restorationHandler:方法。
    • 应用未启用Scene配置(Info.plist中无UIApplicationSceneManifest条目):即使在iOS 13+系统上,系统也会回退到AppDelegate处理逻辑。
  • 不能完全只依赖SceneDelegate。如果应用需要兼容iOS 12及以下版本,或存在未启用Scene配置的情况,必须保留AppDelegate中的通用链接处理代码。若应用明确只支持iOS 13+,且已正确配置Scene架构,则可以仅依赖SceneDelegate处理通用链接。

内容的提问来源于stack exchange,提问作者Fattie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:22:21