横屏改为 auto_rotation_landscape:横屏两朝向跟随传感器旋转,不进竖屏

- module.json5:landscape → auto_rotation_landscape(横屏正/反向 180° 跟随重力
  感应自动旋转,但不进入竖屏),build 校验取值合法、安装启动通过
- 同步契约 §7 与框架 §7.4:'不跟随传感器' 修正为 '横屏两朝向内跟随旋转'
- H5 显式方向控制(含竖屏)仍由 setPreferredOrientation 保留,零改动不变

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
lanterngamescn
2026-06-25 08:38:05 +08:00
co-authored by Claude Opus 4.8
parent dbc416a940
commit 82459c708c
3 changed files with 5 additions and 5 deletions
@@ -543,13 +543,13 @@ H5 以 `file://` 加载并请求本地/远程资源。HarmonyOS 侧采用官方"
本项目为**横屏项目**:应用**默认横屏、不跟随设备传感器自动旋转**;同时**遵守 H5 零改动铁律**,完整保留 H5 经方向接口显式切换(含竖屏)的能力,与原 Android 一致(《契约规范》§7 屏幕方向约束 / §8.4 / §11)。落地方式:
- **默认横屏**`EntryAbility``module.json5``"orientation": "landscape"`(启动即横屏、不随重力感应自动转竖屏)。
- **横屏自动旋转**`EntryAbility``module.json5``"orientation": "auto_rotation_landscape"`(在横屏两朝向间跟随重力传感器自动旋转,但不进入竖屏)。
- **H5 动态切换(保留竖屏能力)**:方向接口收到请求时用窗口 API **动态覆盖**,不写死锁定——
- `AppSystemProvider``orientation` handler`data === '1'` → 横屏,否则 → 竖屏(对齐 Android `setRequestedOrientation`);
- 子游戏 `SwitchOverGameData`:按 `webtype``"3"` 横 / `"2"` 竖)设方向后再 `loadUrl`
- `GenericWebContainer`:按打开参数 `orientation``"1"` 竖 / 其他 横)设方向。
- **实现 API**:运行时 `window.Window.setPreferredOrientation(orientation: window.Orientation)` 动态切换,`window.Orientation``LANDSCAPE` / `PORTRAIT`(编码前用 `devecocli docs` 核对签名)。
- **要点**`module.json5``landscape` 提供"默认横屏 + 禁传感器自动转",运行时 `setPreferredOrientation` 提供"H5 显式切换"——二者叠加既满足横屏项目定位,又守住 H5 零改动。
- **要点**`module.json5``auto_rotation_landscape` 提供"横屏内跟随传感器旋转(不进竖屏)",运行时 `setPreferredOrientation` 提供"H5 显式切换"——二者叠加既满足横屏项目定位,又守住 H5 零改动。
---