回想一下,上次你打开一个 App 只为了看一个信息:电影票座位、快递物流、航班动态……结果被迫经历了启动页、广告弹窗、首页推荐、层层菜单,最后才找到想要的内容。
如果下次你只需要对小艺说出你的需求,你的 App 就能直接从系统层拉起目标页面,用户会不会更喜欢用你的应用?就像以下动图中展示的那样:查天气、买电影票、设闹钟,都能对小艺一句话实现。你的 App 功能,同样可以拥有这种体验。这不是产品愿景,而是鸿蒙意图框架此刻就能提供的接入能力。意图框架(Insight-Intent)是鸿蒙生态中连接应用与系统级 AI 入口的关键桥梁。通过它,你可以将 App 的核心功能封装成标准化「意图」,让小艺语音、小艺建议等系统入口能够智能识别并直接调用——用户一句话,你的功能即刻响应。目前鸿蒙意图框架已覆盖影音娱乐、出行导航、便捷生活、金融理财、健康医疗等十余个垂域,开放了上百种标准可接入能力,例如播放音视频、骑行/驾车导航、查快递缴话费、查社保公积金、股票基金交易、医院挂号等常见场景,开发者既可接入官方预置标准意图,也可自定义专属业务意图。官方标准意图垂域与能力清单可查阅:标准意图接入规范 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/insight-intent-access-specifications本文用最通俗的语言讲透基础概念,再手把手带你 5 分钟完成首个意图 Demo。一、意图框架基础概念
1. 什么是意图框架
意图框架是鸿蒙提供的应用功能开放框架,让 App 的核心能力能够被小艺等系统入口直接调用,实现「一句话直达」的智能体验。传统方式:用户想买电影票 → 打开你的 App → 找到电影模块 → 选影片 → 选场次 → 确认购买(5 步操作)意图框架方式:用户对小艺说「帮我买《给阿嬷的情书》今晚7点半的电影票」→ 小艺识别意图 → 直接拉起你的 App 购票页面,并自动填充影片、场次信息→ 用户只需确认支付(2 步完成)2. 核心基础名词(新手必懂)
| | |
|---|
| 意图 | | 购买电影票 |
| 意图参数 | | {movieName: "给阿嬷的情书", time: "19:30"} |
| 意图执行结果 | | {success: true, orderId: "NO20260520001", seatNumber: "4排9座"} |
3. 运行机制极简拆解
意图开发:开发者基于 App 业务功能,通过配置文件或装饰器,定义意图、参数和执行逻辑。意图查询:系统入口可以查询注册到意图框架的意图及其功能。意图执行:系统入口解析用户自然语言或操作指令,匹配对应意图,传递参数给 App,App 执行对应功能后将执行结果回传给系统,系统将结果反馈给用户。4. 两种开发方式对比
意图框架提供两种开发方式,新手优先推荐装饰器开发: | | | |
|---|
| | 需新建配置文件+执行文件,绑定 Ability 组件 | |
| | | |
二、意图框架接入 Demo(5 分钟上手)
前置准备
开发环境:DevEco Studio,适配API 20(鸿蒙 6.0 及以上);开发方式:通过装饰器开发,无需额外配置文件,极简实现。Demo 目标
实现一个拉起 App 订票页面意图:通过系统意图调试工具触发,自动拉起 App 的订票页面,新手快速验证意图调用能力。步骤 1:创建鸿蒙工程
新建Empty Ability工程,API 版本选择API 20及以上版本,等待工程同步完成。步骤 2:创建订票信息页面
新建 entry/src/main/ets/pages/BookingInfoPage.ets,添加页面信息:@Entry@Componentstruct BookingInfoPage { @State orderNumber: string = 'NO20260520001'; @State movieName: string = '给阿嬷的情书'; @State cinema: string = '嘉年华影城(滨江店)'; @State showTime: string = '2026年5月20日 19:30'; @State seatInfo: string = '4排9座'; @State status: string = '已出票'; build() { Column() { // 标题栏 Row() { Text('🎬 订票信息') .fontSize(24) .fontWeight(FontWeight.Bold) } .width('100%') .margin({ top: 30, bottom: 20 }) .justifyContent(FlexAlign.Center) // 订单卡片 Column() { Text(`订单号:${this.orderNumber}`) .fontSize(16) .fontColor('#666666') .margin({ bottom: 15 }) Divider() Row() { Text('🎞️ 影片:') .fontSize(16) Text(this.movieName) .fontSize(16) .fontWeight(FontWeight.Medium) } .width('100%') .margin({ top: 12 }) Row() { Text('🏢 影院:') .fontSize(16) Text(this.cinema) .fontSize(16) } .width('100%') .margin({ top: 8 }) Row() { Text('⏰ 场次:') .fontSize(16) Text(this.showTime) .fontSize(16) } .width('100%') .margin({ top: 8 }) Row() { Text('💺 座位:') .fontSize(16) Text(this.seatInfo) .fontSize(16) .fontColor('#FF6600') } .width('100%') .margin({ top: 8 }) Row() { Text('📌 状态:') .fontSize(16) Text(this.status) .fontSize(16) .fontColor('#00AA00') } .width('100%') .margin({ top: 8 }) } .width('90%') .padding(20) .backgroundColor('#F5F5F5') .borderRadius(12) .margin({ top: 20 }) // 取票码 Column() { Text('取票码') .fontSize(14) .fontColor('#999999') .margin({ bottom: 5 }) Text('1234 5678') .fontSize(20) .fontWeight(FontWeight.Bold) .fontColor('#FF6600') .letterSpacing(4) } .width('90%') .padding(15) .backgroundColor('#FFF8E7') .borderRadius(8) .margin({ top: 20 }) .alignItems(HorizontalAlign.Center) } .width('100%') .height('100%') .backgroundColor('#FFFFFF') }}
步骤 3:添加意图装饰器定义意图
在 BookingInfoPage 页面上添加 @InsightIntentPage 装饰器:// 导入意图框架装饰器import { InsightIntentPage } from '@kit.AbilityKit';// 为订票信息页面添加意图注解——声明这是一个可被系统入口拉起的页面@InsightIntentPage({ intentName: 'ViewBookingInfo', // 意图唯一标识 domain: 'MovieTicketsDomain', // 所属领域:电影票务 intentVersion: '1.0.1', // 版本号 displayName: '查看订票信息', // 意图显示名称 llmDescription: '查看用户的电影票订票信息,包括影片名称、影院、场次、座位和取票码', // 用于AI理解描述 uiAbility: 'EntryAbility', // 绑定的 Ability pagePath: './ets/pages/BookingInfoPage', // 目标页面路径})@Entry@Componentstruct BookingInfoPage { // ... 页面代码同上}
步骤 4:开启意图调试开关&验证意图执行
4.1 App 编译安装
4.2 设备开启意图调试开关(仅首次需要)
4.3 验证执行意图
点击「查看设备上所有意图」,可以查看所有已注册意图;✅ App 自动拉起,直接展示订票信息页面——成功!相关官方链接
1. 通过小艺端到端调测意图:开发者测试
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/intents-skill-all-rec-dp-self-validation
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/intents-kit-listing-standard-protocolhttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides/insight-intent