Skip to content

修复 iOS FlutterSceneDelegate 下微信开放标签冷启动回调#770

Merged
JarvanMo merged 1 commit into
OpenFlutter:mainfrom
lkdghzh:fix/ios-scene-cold-start
Jul 20, 2026
Merged

修复 iOS FlutterSceneDelegate 下微信开放标签冷启动回调#770
JarvanMo merged 1 commit into
OpenFlutter:mainfrom
lkdghzh:fix/ios-scene-cold-start

Conversation

@lkdghzh

@lkdghzh lkdghzh commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

问题说明

iOS App 使用 FlutterSceneDelegate 时,通过微信开放标签 wx-open-launch-app 冷启动 App,自定义微信 URL Scheme 会通过 UISceneConnectionOptions.urlContexts 传入。

fluwx 当前处理了 UIApplicationDelegate.application:openURL:options:,但没有处理 UIScene 对应的冷启动入口,导致:

  • 微信可以成功冷启动 App;
  • registerApi() 正常返回 true
  • Dart subscriber 无法收到 WeChatLaunchFromWXRequest
  • 无法获取开放标签传入的 extMsg

修改内容

  • 将现有 URL Scheme 处理和缓存逻辑抽取为 handleOrCacheOpenURL:
  • 新增 scene:openURLContexts:,处理 App 运行期间收到的自定义 URL Scheme;
  • 新增 scene:willConnectToSession:options:,处理冷启动时 connectionOptions.URLContexts 中的 URL;
  • 复用现有 _cachedOpenUrlRequestattemptToResumeMsgFromWx() 流程;
  • 不修改现有 Dart API 和 Android 行为。

测试结果

已在 iOS 真机 Profile 模式下测试:

  1. 完全结束 App;
  2. 通过微信开放标签冷启动;
  3. registerApi() 返回 true
  4. Dart subscriber 收到 WeChatLaunchFromWXRequest
  5. 成功获取 extMsg
  6. App 成功跳转到指定业务页面。

关联问题

Fixes #769
Related to #733
Follow-up to #755

@JarvanMo

Copy link
Copy Markdown
Member

Thank you.

@JarvanMo
JarvanMo merged commit 44b3545 into OpenFlutter:main Jul 20, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

冷启动时: fluwx.attemptToResumeMsgFromWx();不能触发addSubscriber的回调. 1.scene_delegate: true 2.版本6.0 3.仅发生在IOS

2 participants