docs: 补充横屏项目约束(默认横屏、不支持竖屏自动旋转)
- 契约规范 §7:新增屏幕方向约束——默认横屏、不跟随传感器自动旋转; 但遵守 H5 零改动铁律,保留 orientation/SwitchOverGameData webtype/通用网页 orientation 三处 H5 显式方向控制(含竖屏),与原 Android 一致 - 框架指南 §7.4:实现落地——module.json5 orientation:landscape 默认横屏 + 运行时 window.setPreferredOrientation 按 H5 请求动态切换 - 经核对原 Android:上述三处确为真实竖屏切换(非死代码),故定调为 '默认横屏 + 不破坏 H5 方向控制' Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
300f6d9b80
commit
3a333bfe32
@@ -539,6 +539,18 @@ export struct GenericWebContainer {
|
||||
|
||||
H5 以 `file://` 加载并请求本地/远程资源。HarmonyOS 侧采用官方"Web 页面跨域解决方案":用 `onInterceptRequest` 自定义本地资源响应,或为本地页配置自定义协议/响应头,避免 file 同源限制。**对 H5 透明**。
|
||||
|
||||
### 7.4 屏幕方向(横屏项目)
|
||||
|
||||
本项目为**横屏项目**:应用**默认横屏、不跟随设备传感器自动旋转**;同时**遵守 H5 零改动铁律**,完整保留 H5 经方向接口显式切换(含竖屏)的能力,与原 Android 一致(《契约规范》§7 屏幕方向约束 / §8.4 / §11)。落地方式:
|
||||
|
||||
- **默认横屏**:`EntryAbility` 在 `module.json5` 配 `"orientation": "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 零改动。
|
||||
|
||||
---
|
||||
|
||||
## 8. 启动编排与配置/资源子系统
|
||||
|
||||
Reference in New Issue
Block a user