鸿蒙综合讨论/S1 菜单汉化:原生菜单树鸿蒙化

S1 菜单汉化:原生菜单树鸿蒙化

移植标准 S1:菜单汉化——原生菜单树鸿蒙化

「Air 系列移植标准」系列第一篇。十四项标准是每个工程的验收门槛,逐项讲透。S1 讲菜单:桌面应用的菜单栏必须转化为鸿蒙原生的菜单体系。

▍定义
应用的全部菜单(菜单栏、上下文菜单)经 ArkTS 原生组件渲染:菜单树从框架侧导出(结构化数据),原生壳渲染成系统风格的下拉与弹层,用户点击后事件回注框架触发原逻辑。框架自绘的菜单(直接画在渲染表面上的假菜单)不算达标。

▍为什么重要
三条硬理由:触摸目标(桌面菜单为鼠标精度设计,原生菜单的触摸目标是移动标准);系统一致性(暗黑模式、动效、字体缩放自动跟随系统——自绘菜单全要自己做);可扩展性(原生菜单可以混入系统级能力:分享、打开方式、搜索——自绘菜单是孤岛)。

▍达成要点
菜单树导出通道(静态部分构建期提取、动态部分运行时同步——可用态、勾选态的差分更新);事件回注桥(菜单项标识用上游的稳定动作 ID,不用序号);大菜单的搜索(几百项的菜单加过滤搜索,平板效率场景刚需);快捷键的处理(连接键盘时快捷键可用,纯触摸时文案弱化)。

▍自查方法
四查:每个菜单项点击后行为与桌面版一致(逐项对拍);动态菜单项(随文档状态变化的可用性)状态正确;暗黑模式下菜单样式正常;上下文菜单(长按唤出)覆盖桌面的右键场景。对拍方法:桌面版与移植版并排操作同一功能,逐项核对。

▍常见不达标形态
菜单还是自绘的(看着像菜单,实际是框架画的——暗黑模式下立即露馅);只做了菜单栏没做上下文菜单(右键场景缺失);菜单项事件回注错位(点了 A 触发 B——标识不稳定的老问题)。

▍一句话
菜单是应用的脸面,S1 要求它说本地方言:原生的皮肤、系统的脾气、上游的灵魂。

更多标准的实战案例,欢迎到 apps 板块翻看 56 篇《鸿蒙PC适配全记录》系列实录。
楼主 7 天前
想参与讨论?登录 或 30 秒注册。