【OpenHarmony/HarmonyOs 】元服务能力集成设计:公式速算、今日挑战与最近模型的轻量入口

本文基于我的 OpenHarmony/HarmonyOS 项目「物理视界 PhysicsVision」整理。项目当前已有物理公式计算器、挑战模块、最近浏览、收藏和 28 个模型路由。
这一篇围绕“元服务能力集成”做设计:哪些功能适合拆成轻量入口,如何复用现有页面和状态,不脱离项目实际。🧩

一、为什么这个项目适合做元服务?

元服务适合高频、轻量、即用即走的功能。
「物理视界」中有很多功能不一定需要用户完整进入 App:

  • 查一个公式;
  • 做 5 道挑战题;
  • 打开最近学过的模型;
  • 进入收藏模型;
  • 课堂快速打开一个演示实验。

这些都适合做成元服务入口。

二、项目已有的基础能力

当前项目具备:

  • PhysicsCalculatorComponent:公式计算器;
  • ChallengeTab:知识挑战;
  • LabTab:模型实验室;
  • FavoritesTab:收藏;
  • visitedModels:最近浏览;
  • routes:模型路由。

也就是说,元服务不需要从零开始写功能,而是把已有能力包装成轻量入口。

三、入口一:公式速算

公式计算器中已经有结构化公式配置:

export interface CalcItem {
  name: string
  formula: string
  inputs: CalcInput[]
  calculate: (values: number[]) => string
}

例如牛顿第二定律:

{
  name: '牛顿第二定律',
  formula: 'F = m · a',
  inputs: [
    { label: '质量 (m)', unit: 'kg', defaultValue: '1.0' },
    { label: '加速度 (a)', unit: 'm/s²', defaultValue: '9.8' }
  ],
  calculate: (v) => `合外力 F = ${(v[0] * v[1]).toFixed(2)} N`
}

元服务入口可以直接打开某个公式:

公式速算:欧姆定律
输入 I 和 R,立即得到 U

这适合做作业时快速使用。

四、入口二:今日 5 题挑战

挑战模块已经支持题目数量选择:

ForEach([5, 10, 15, 20], (n: number) => {
  Text(n.toFixed(0))
    .onClick(() => { this.totalQuestions = n })
})

元服务可以固定为“今日 5 题”:

  • 默认题数 5;
  • 默认不限时;
  • 根据上次薄弱分类推荐题目;
  • 完成后回到结果页。

这能把完整挑战模块拆成一个轻量复习入口。

五、入口三:最近模型

项目中已经保存最近浏览:

@StorageLink('visitedModels') visitedModels: string = ''

最近浏览取最近 6 个:

updateRecentList(): void {
  if (this.visitedModels.length === 0) {
    this.recentList = []
    return
  }
  let parts: string[] = this.visitedModels.split(',')
  let result: number[] = []
  let start: number = parts.length > 6 ? parts.length - 6 : 0
  for (let i = parts.length - 1; i >= start; i--) {
    let val: number = parseInt(parts[i])
    if (val >= 0 && val < this.names.length) {
      result.push(val)
    }
  }
  this.recentList = result
}

元服务卡片可以展示最近一个模型:

继续学习:光的干涉
上次已探索,点击继续观察条纹变化

这很符合全场景学习续接。

六、入口四:收藏模型

收藏数据保存在:

@StorageLink('favorites') favStr: string = ''

收藏列表可以作为考前复习入口:

我的收藏
5 个重点模型,点击快速复习

用户收藏的内容往往是薄弱点或重点内容,所以非常适合做轻量入口。

七、入口五:课堂演示模型

项目中视觉表现最强的模型包括:

  • 光的干涉;
  • 电场线分布;
  • 凸透镜成像;
  • 自由落体;
  • 平抛运动;
  • 声音传播。

元服务可以提供“课堂演示”入口,直接打开某个模型页面。
比如老师讲光学时,直接打开光的干涉,不需要从首页搜索。

八、端侧 AI 可以做什么?

在元服务入口中,端侧 AI 或规则推荐可以帮助选择内容:

  • 根据最近浏览推荐继续学习;
  • 根据挑战错题推荐模型;
  • 根据收藏数量推荐复习入口;
  • 根据学习进度推荐未探索模型。

当前项目已有规则推荐:

if (!this.isVisited(i) && this.difficulties[i] === '基础') {
  result.push(i)
}

后续可以把这个规则封装成“今日推荐模型”。

九、隐私边界:元服务只展示必要信息

元服务入口不应该展示过多学习隐私。
建议只展示:

  • 模型名称;
  • 入口名称;
  • 简短进度;
  • 收藏数量。

不建议展示:

  • 完整错题;
  • 详细成绩;
  • 学习时间线;
  • 用户身份信息。

这符合隐私保护主题,也适合轻量入口的定位。

十、总结

「物理视界」非常适合做元服务能力集成,因为它已经有多个高频小任务:公式速算、今日挑战、最近模型、收藏复习和课堂演示。
这些入口都可以复用现有页面、现有状态和现有路由。

这篇文章对应的主题是:元服务能力集成 + 端侧智能推荐 + 全场景学习入口
它不是脱离项目空谈,而是从当前功能中挑出最适合轻量化的部分,设计成可落地的元服务入口。🧩

img

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐