跳到主要内容

多端适配

平台分支、鸿蒙适配与宽屏布局约定

原则

  • 移动端优先流式布局
  • 宽屏可换导航形态(如 NavigationRail / 侧栏,以实现为准)
  • Desktop:提供 hover / focus 反馈(Material InkWell 等)

NOTE

项目已移除全部 Flutter Web 支持(无 web/ 目录、无 Web 构建目标、lib 中无 kIsWeb 残留)。目标平台为 Android / iOS / Windows / macOS / Linux / HarmonyOS NEXT(ohos)。

平台分支

if (Platform.isAndroid) {
  // Android
} else if (Platform.isIOS) {
  // iOS
} else if (Platform.isWindows || Platform.isMacOS || Platform.isLinux) {
  // 桌面
} else if (Platform.operatingSystem == 'ohos') {
  // HarmonyOS NEXT
}

能力级差异不用运行时分支硬编码,优先用数据标记。如校园网格 CampusGridApp 的 ohosSafe 字段(campus_grid_app.dart):在 ohos 上不可用的能力(如水电网费缴纳)标记 ohosSafe: false(campus_page.dart),由网格组件过滤(campus_apps_grid.dart)。

与能力相关的平台差异(摘要)

能力备注
校园巴士预览卡片仅由布局偏好控制(layout.showBusPreviewCard);桌面宽屏可双列天气+校巴
热更新 / fjsfjs 依赖原生 / FFI;ohos 走 lib/core/scripting/fjs_runtime.dart 平台适配
安装包检查各平台下载资源由官网 release assets 区分
桌面小组件仅部分平台
鸿蒙 ohos/独立工程目录,能力以代码 *Safe 标记为准;含 aTrust VPN 扩展(ohos/entry/src/main/ets/vpnability/SangforVpnExtAbility.ets);ArkTS 已启用混淆;构建入口 tool/ohos/build.ps1(HAP 构建失败自动重试一次),详见 tool/ohos/BUILD.md

相关