Skip to content

fix(multiweb): 修复 Desktop 首帧与 iOS KLIB 缓存 - #22

Merged
generalio merged 3 commits into
mainfrom
generalio/fix/desktop-visible-layout
Aug 8, 2026
Merged

fix(multiweb): 修复 Desktop 首帧与 iOS KLIB 缓存#22
generalio merged 3 commits into
mainfrom
generalio/fix/desktop-visible-layout

Conversation

@generalio

@generalio generalio commented Aug 8, 2026

Copy link
Copy Markdown
Owner

目的

修复 macOS Desktop JCEF 首帧需要拖动窗口才显示的问题,并修复新版 Xcode 与 Kotlin Native 消费 MultiWeb iOS KLIB 时的重复 WKUIDelegate selector 缓存构建失败。

改动内容

  • Desktop:等待 Swing 原生视图实际可见后创建 JCEF,并用一次受控离屏绘制触发 JCEF 的带原生父窗口创建路径;移除无父窗口的 createImmediately 兜底。
  • iOS:移除自定义文件选择 cinterop 协议,改为直接使用 Xcode SDK 提供的 WKOpenPanelParameters、WKFrameInfo 与 WKUIDelegate 回调。
  • 构建:Kotlin 编译器升级至 2.4.10,重新生成受影响的 Android/JVM API 基线;接口默认实现的 DefaultImpls 保持存在,变更为二进制兼容的放宽。

平台影响

  • Android:仅随 Kotlin 2.4.10 重新编译,无 WebView 行为变化。
  • iOS:修复 iOS Simulator KLIB cache 构建失败,保留文件选择的多选、目录选择、取消与回调语义。
  • Desktop:修复 macOS JCEF 首帧原生父窗口绑定时序,避免用户调整窗口后才显示。
  • JS/Wasm:未改变浏览器 URL 打开、Cookie、缓存或 JS 权限语义。

验证命令与结果

  • apiCheck、Android Release 构建与 AndroidTest Kotlin 编译、Desktop check、iOS Simulator Framework 链接、JS/Wasm 编译:通过。
  • webview-ios iosSimulatorArm64Test:通过。
  • 所有发布模块 publishToMavenLocal(版本 0.2.9):通过;已确认 iOS Simulator KLIB 使用 Kotlin 2.4.10 且不含旧 cinterop。
  • 未自动化真实设备运行:Android、iOS 与 Desktop UI 仍需发布后在宿主应用中手动验收。

风险与兼容性

无公共 API 成员增删。Android/JVM API 基线中的接口默认方法标记因 Kotlin 2.4.10 变化而更新,旧 DefaultImpls 仍保留,现有调用方二进制兼容。JS 桥来源校验、Cookie、文件访问、下载和外部导航策略均未放宽。

文档变更

更新 Desktop 首帧同步相关中文 KDoc;未更新 README,因为对外接入方式未变化。

@generalio generalio changed the title fix(desktop): 修复 JCEF 首帧可见区域时序 fix(multiweb): 修复 Desktop 首帧与 iOS KLIB 缓存 Aug 8, 2026
@generalio
generalio marked this pull request as ready for review August 8, 2026 18:00
Copilot AI lite review requested due to automatic review settings August 8, 2026 18:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@generalio
generalio merged commit 1bc2e08 into main Aug 8, 2026
3 checks passed
@generalio
generalio deleted the generalio/fix/desktop-visible-layout branch August 11, 2026 11:11
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.

2 participants