GitPushDaily 2026-10-26 00:38:00 发布以前做应用开发,我们通常会把重点放在应用内部:用户打开首页,找到功能入口,填写信息,再完成操作。但在实际使用中,用户未必想打开应用、翻找菜单,他们可能只想直接说出自己的需求。HarmonyOS 7 的 Skill 能力给了我一个新的思路:把应用中已有的业务能力封装出来,让用户有机会通过系统级智能入口直接调用服务。官方将 Skill 列为 HarmonyOS 7 的重要智能化能力,并提供相应的开发、调测、审核和上架支持。
<Cite refs={["turn427496search0","turn427496search5"]}/>这次实践中,我选择一个任务管理应用作为例子。应用原本支持创建待办事项,但用户需要进入应用、点击新增、填写标题和截止时间。接入 Skill 的目标,是让用户表达“帮我添加一个明天下午三点的项目评审任务”后,系统能够在符合授权和调用条件时,触发应用相应的业务能力。
我没有直接把整个页面暴露出去,而是先把创建任务的核心逻辑从 UI 层拆出来。这样,无论任务来自页面按钮,还是未来通过 Skill 触发,都能复用同一套业务校验。
interface TodoTask {
title: string;
dueAt: number;
}
class TodoService {
async createTask(task: TodoTask): Promise<boolean> {
if (!task.title.trim()) {
return false;
}
if (!Number.isFinite(task.dueAt) || task.dueAt <= 0) {
return false;
}
// 在这里调用应用已有的持久化逻辑
return await this.saveTask(task);
}
private async saveTask(task: TodoTask): Promise<boolean> {
// 示例占位:替换为项目实际的数据存储实现
return true;
}
}这段代码不是 HarmonyOS 7 Skill 的注册 API,而是我在接入系统智能入口之前做的业务层改造示例。真正的 Skill 定义、参数声明、能力注册和调测,需要按照官方 Skill 开发指南完成。
我认为,接入前最值得花时间的工作不是写配置,而是明确哪些能力适合被调用。比如,“查询任务”通常风险较低;“删除任务”“批量修改截止时间”则需要更严格的确认机制。不能因为用户说了一句话,就跳过原有的业务规则。我还会把参数解析和业务执行分开处理。系统传入的参数必须经过校验,时间需要统一格式,缺少标题或截止时间时应返回明确的补充信息。对于无法确定的日期表达,也不能擅自猜测后直接创建任务。完成能力封装后,我会重点测试几类情况:正常调用、缺少必填参数、参数类型错误、重复请求,以及用户取消操作。还需要检查 Skill 的权限范围、审核要求和异常反馈,确保系统入口调用与应用内部操作遵循相同的规则。
这次实践让我认识到,Skill 接入并不只是增加一个新的入口,而是要求开发者重新思考应用能力应该如何被描述、调用和保护。业务层越清晰,能力封装越容易;边界设计越严谨,系统级智能入口带来的体验提升才越可靠。
对已有应用来说,我更倾向于从一个高频、边界清晰的功能开始接入,而不是一开始就把所有页面和操作都开放出来。先让一个能力真正可用,再逐步扩展,往往更容易验证价值。
GitPushDaily
我还没有写个人简介......
帖子
提问
粉丝



0
京公网安备:11010502051901号