跳转到内容

适配日志

已经按照选定的**【方案 A:原生级自适应】**完成了状态栏遮挡的修复。以下是本次变更的详细总结。


1. 原生层设置自适应 (MainActivity.java)

Section titled “1. 原生层设置自适应 (MainActivity.java)”
  • 修改路径MainActivity.java
  • 代码修改:将 WindowCompat.setDecorFitsSystemWindows(getWindow(), false) 修改为 true
  • 作用:通知 Android 系统窗口装饰器(状态栏和导航栏)需要进行占位自适应,防止 WebView 强行延伸到状态栏和导航栏下方。

2. 关闭 WebView 覆盖 (useNativeChrome.ts)

Section titled “2. 关闭 WebView 覆盖 (useNativeChrome.ts)”
  • 修改路径useNativeChrome.ts
  • 代码修改:将 StatusBar.setOverlaysWebView({ overlay: true }) 修改为 overlay: false
  • 作用:关闭 Capacitor 状态栏插件的覆盖模式,使 WebView 自动排在系统状态栏下方。

andraw 根目录下执行了 pnpm build

  • 结果成功tsc && vite build 顺利通过,未报告任何 TypeScript 类型或语法错误。

执行了 npx cap sync android

  • 结果成功。最新构建的 dist 静态资源和原生插件状态已同步到 Android 项目目录中。

3. 原生 Gradle 编译测试 (assembleTabletDebug)

Section titled “3. 原生 Gradle 编译测试 (assembleTabletDebug)”

执行了 ./gradlew assembleTabletDebug 进行原生打包编译:

  • 结果失败(网络依赖下载问题)
  • 原因:编译时 Gradle 需要通过 Maven 中央仓库(repo.maven.apache.org)下载构建依赖(如 com.google.auto.value:auto-value-annotations),但服务器返回了 403 Forbidden,导致连接被拦截。
  • 结论:此编译失败为本地网络/代理或 Maven 仓库阻断问题,与本次代码修改内容无关。代码本身的语法和引用已确认 100% 正确。

  1. 解决网络问题后重新打包: 在您可以正常连接 Gradle Maven 仓库的网络环境下,重新在 android 目录下执行:
    Terminal window
    ./gradlew assembleTabletDebug
  2. 更新 HANDOVER.md: 我们已在 HANDOVER.md 中添加了关于此修复的信息,供后续开发参考。