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

继承FlutterAppDelegate后iOS原生App的openURL等方法未触发如何解决?

解决FlutterAppDelegate覆盖原生AppDelegate方法不调用的问题

继承FlutterAppDelegate后,父类已实现这些系统代理方法,导致原生子类的同名方法默认不会触发。可以通过以下方式兼顾Flutter和原生逻辑:

  • 重写handleOpenURL方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    // 优先让FlutterAppDelegate处理相关逻辑
    BOOL flutterHandled = [super application:application handleOpenURL:url];
    // 这里添加你原来的URL处理代码(比如自定义Scheme跳转、第三方登录回调等)
    return flutterHandled || YES; // 根据实际处理结果返回
}
  • 重写continueUserActivity方法:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    // 调用父类方法确保Flutter侧的用户活动处理正常
    BOOL flutterHandled = [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
    // 添加你原来的Universal Link或其他用户活动处理代码
    return flutterHandled || YES; // 根据实际处理结果返回
}

如果还有其他被覆盖的AppDelegate方法,都可以采用这种「先调用super实现,再执行原生业务逻辑」的方式处理,既能保证Flutter相关功能正常运行,又不影响原生项目原有逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:38:10