SuperAPI AI 工具集

capacitor-foldable

通用与其它

查看项目

更新于 10-15 21:39

技能介绍

用途:本技能针对 @erkamyaman/capacitor-foldable 插件,向 Capacitor 网页视图报告折痕位置、铰链角度、设备姿态以及应用所在显示屏,用于可折叠设备(iPhone Duo 与 Android 折叠屏)的界面适配。安装:npm install @erkamyaman/capacitor-foldable 后执行 npx cap sync。Capacitor 8 使用当前主版本;Capacitor 7 应用需安装 @erkamyaman/capacitor-foldable@7,其在 Android 报告折痕并可获取尺寸类,但不支持 iPhone Duo,且用 Xcode 27 构建会启动崩溃,7.x 也不包含 --fold-* 变量与 Ionic 标签样式表。

主要能力:启动时调用 installFoldablePolyfill() 一次性安装 polyfill,设备报告折痕时会在 <html> 上设置 --fold-left、--fold-top、--fold-width、--fold-height 与 --fold-margin-,并添加 fold-vertical 或 fold-horizontal 类,同时补齐 Safari 与 Android WebView 缺失的 Viewport Segments 和 Device Posture API。布局应优先使用 --fold- 变量而非 polyfill 的分段变量:分段仅在折痕实际分隔窗口时生效,而折痕变量在完全展开时同样可用。

使用方式:先写无折痕的平面布局,再在 .fold-vertical / .fold-horizontal 规则中细化;按 var(--fold-left) 分割而非 50%;把 --fold-width 作为保持净空带,用 max(12px, var(--fold-width, 0px)) 设最小净空;旋转设备时注意折痕方向会从纵向变横向。CSS 无法回答铰链角度、姿态、当前显示屏或系统栏位置时,改用插件方法;折痕变化用 foldStateChange 事件,不要定时轮询 getFoldState()。

适用场景与限制:适用于需要围绕折痕排版、适配 iPhone Duo 与 Android 折叠屏的 Capacitor 应用,尤其 Ionic 应用(侧边 ion-tabs 等)。非原生环境下安装为 no-op,桌面浏览器看不到效果,需在模拟器或真机迭代。不要用 setVerticalBarBehavior({behavior:'disabled'}) 规避适配;不要把“设备可折叠”与“此屏幕上有折痕”混淆。使用后建议执行构建并运行展开、半开、闭合及再次开合来验证。详细参考见 css-layout.md、api.md、ionic.md、iphone-duo.md、android.md、testing.md。