【共创季稿事节】HarmonyOS 6.1 意图框架(Intent Framework)接入实战
文章目录每日一句正能量摘要一、意图框架概述1.1 从找应用到找能力1.2 意图框架的三层模型1.3 意图框架的核心价值二、意图注册让系统认识你2.1 注册原理2.2 module.json5 配置详解2.3 注册配置示意图三、意图识别让系统理解用户3.1 意图解析流程3.2 自然语言到意图的映射示例3.3 意图参数兜底策略四、跨应用跳转与数据传递4.1 通过 Intent 唤起其他应用4.2 URI Scheme 深度跳转4.3 带返回结果的意图调用五、系统级入口接入实战5.1 接入小艺建议Celia Suggestions5.2 接入智慧搜索5.3 接入系统分享面板六、跳转效果与交互体验6.1 跳转动画配置6.2 跳转效果示意图七、意图框架最佳实践7.1 注册规范7.2 体验优化7.3 安全与隐私八、总结每日一句正能量不偏执于一条路不固执于一种想法才能在变化的世界中找到属于自己的出路。世界充满变数执念是痛苦的根源也是视野的牢笼。灵活不是善变而是基于对现实的清醒认知懂得调整策略。出路往往不在原定计划的终点而在拐弯处的发现。摘要摘要HarmonyOS 6.1 的意图框架Intent Framework是系统级智能分发能力的核心基础设施。它让应用不再依赖固定的图标入口而是通过意图这一语义化的交互契约被系统在恰当的时机、恰当的入口、以恰当的方式唤起。本文从原理到实践完整讲解意图的注册、识别、解析与跨应用跳转全链路并演示如何将应用接入小艺建议、智慧搜索、系统分享面板等关键系统入口。一、意图框架概述1.1 从找应用到找能力传统移动生态中用户与应用的交互路径高度依赖图标记忆——用户需要知道某个功能在哪个 App 里然后找到图标、打开应用、再找到具体功能。这种模式的痛点在于发现成本高应用越多找到目标功能的成本越高入口割裂同样的能力如打车分散在多个应用中用户需要反复比较场景断裂用户正在 A 应用中想使用 B 应用的能力必须切换上下文。HarmonyOS 6.1 的意图框架Intent Framework试图打破这一困局。它的核心理念是系统不关心功能在哪个应用里只关心用户需要什么能力。1.2 意图框架的三层模型上图展示了意图框架的完整流转链路。用户通过自然语言或系统入口表达意图系统经过意图理解、应用匹配、能力路由最终唤起目标应用的具体功能页面。意图框架可分为三层层级职责核心模块意图表达层接收用户意图输入语音、文字、手势、上下文小艺助手、智慧搜索、系统分享面板意图解析层理解意图语义提取实体参数确定目标能力Intent Resolver、NLP Engine、Entity Extractor能力路由层匹配注册该能力的应用按优先级排序执行跳转Ability Manager、App Ranker、Deep Link Router1.3 意图框架的核心价值价值点说明去中心化发现应用能力可被系统全局索引不依赖用户主动打开应用场景化触发基于时间、地点、设备状态等上下文自动推荐能力跨应用协同应用 A 可直接唤起应用 B 的某个功能数据无缝传递自然语言入口用户通过说话或打字即可直达功能无需记忆应用名称二、意图注册让系统认识你2.1 注册原理意图注册的本质是向系统声明我的应用能提供什么能力。开发者需要在module.json5中声明意图能力Intent Ability并在代码中实现对应的意图处理器Intent Handler。2.2 module.json5 配置详解{ module: { abilities: [ { name: OrderDetailAbility, srcEntry: ./ets/entryability/OrderDetailAbility.ets, description: $string:OrderDetailAbility_desc, icon: $media:icon, label: $string:OrderDetailAbility_label, startWindowIcon: $media:icon, startWindowBackground: $color:start_window_background, exported: true, skills: [ { actions: [ ohos.intent.action.VIEW_ORDER ], entities: [ ohos.intent.entity.FOOD_DELIVERY ], uris: [ { scheme: harmonyfood, host: order, path: /detail } ] } ], intents: [ { intentName: QueryOrderStatus, entities: [orderId, shopName], parameters: [ { name: orderId, type: string, required: true, description: 订单编号 }, { name: shopName, type: string, required: false, description: 商家名称 } ] }, { intentName: ReorderMeal, entities: [shopId, dishList], parameters: [ { name: shopId, type: string, required: true }, { name: dishList, type: array, required: false } ] } ] } ] } }配置项解析skills.actions声明该 Ability 响应的标准动作如VIEW_ORDER查看订单、CREATE_ORDER创建订单skills.entities声明该 Ability 处理的实体类型如FOOD_DELIVERY外卖、RIDE_HAILING打车skills.uris声明 Deep Link URI支持自定义 Schemeintents声明意图能力包括意图名称、实体参数和参数类型约束。2.3 注册配置示意图上图直观展示了module.json5中意图注册的关键字段。左侧为标准动作与实体声明右侧为意图参数定义。正确的注册是应用被系统识别的第一步。三、意图识别让系统理解用户3.1 意图解析流程当用户通过语音或文字表达需求时系统会经历以下解析流程意图分类NLP 引擎判断用户意图属于哪个大类查询、下单、导航、播放等实体抽取从用户输入中提取关键参数如订单号、商家名、目的地参数校验检查提取的参数是否满足已注册意图的参数约束应用匹配根据意图名称和实体类型匹配注册了对应能力的应用优先级排序按应用活跃度、用户偏好、开发者权重排序路由执行构建 Want 对象唤起目标 Ability。3.2 自然语言到意图的映射示例用户输入解析意图提取实体目标 Ability“帮我查一下订单 12345”QueryOrderStatusorderId12345OrderDetailAbility“我想再点一份肯德基”ReorderMealshopName肯德基ShopPageAbility“显示我最近的外卖到哪了”QueryOrderStatusorderIdlatestOrderDetailAbility“打开配送地图”ViewDeliveryMaporderIdcurrentDeliveryMapAbility3.3 意图参数兜底策略当用户输入缺少必需参数时应用应优雅处理// entryability/OrderDetailAbility.etsimport{UIAbility,Want}fromkit.AbilityKit;exportdefaultclassOrderDetailAbilityextendsUIAbility{onCreate(want:Want):void{constorderIdwant.parameters?.[orderId]asstring;if(!orderId){// 参数缺失打开订单列表页让用户选择this.context.startAbility({bundleName:com.example.food,abilityName:OrderListAbility});return;}if(orderIdlatest||orderIdcurrent){// 相对时间词查询最新订单this.loadLatestOrder();return;}// 正常加载指定订单this.loadOrderDetail(orderId);}privateasyncloadLatestOrder():Promisevoid{// 从本地缓存或服务端获取最近订单constlatestOrderawaitOrderService.getLatestOrder();this.loadOrderDetail(latestOrder.id);}privateloadOrderDetail(orderId:string):void{// 加载订单详情页面console.info([Intent] 加载订单详情:${orderId});}}四、跨应用跳转与数据传递4.1 通过 Intent 唤起其他应用应用 A 可以通过意图框架唤起应用 B 的特定功能无需知道应用 B 的具体包名// 在应用 A 中唤起外卖订单详情系统会自动匹配合适的应用import{Want}fromkit.AbilityKit;asyncfunctionopenOrderDetail(orderId:string):Promisevoid{constwant:Want{action:ohos.intent.action.VIEW_ORDER,entities:[ohos.intent.entity.FOOD_DELIVERY],parameters:{orderId:orderId,source:partner_app}};constcontextgetContext(this);try{awaitcontext.startAbility(want);console.info([Intent] 跨应用跳转成功);}catch(err){// 没有匹配应用时的降级处理console.error([Intent] 跳转失败可能未安装外卖应用);promptAction.showToast({message:请先安装外卖应用});}}4.2 URI Scheme 深度跳转除了标准动作还可以通过自定义 URI Scheme 实现精确跳转// 唤起外卖应用并直接打开地图页面constwant:Want{uri:harmonyfood://order/map?orderId12345showRidertrue};// 目标应用 Ability 中解析 URIonCreate(want:Want):void{consturiwant.uri;if(uri){consturlnewURL(uri);constorderIdurl.searchParams.get(orderId);constshowRiderurl.searchParams.get(showRider)true;this.openMapPage(orderId,showRider);}}4.3 带返回结果的意图调用当需要获取目标应用的处理结果时使用startAbilityForResult// 唤起支付应用并等待支付结果asyncfunctioninvokePayment(orderId:string,amount:number):Promiseboolean{constwant:Want{action:ohos.intent.action.PAY,entities:[ohos.intent.entity.PAYMENT],parameters:{orderId,amount}};constcontextgetContext(this);try{constresultawaitcontext.startAbilityForResult(want,{requestCode:1001});returnresult.resultCode0;// 0 表示支付成功}catch(err){console.error([Intent] 支付调用失败:,err);returnfalse;}}五、系统级入口接入实战5.1 接入小艺建议Celia Suggestions小艺建议是系统级智能推荐卡片会根据用户习惯在桌面、负一屏等位置展示建议。// services/CeliaSuggestion.etsimport{suggestion}fromkit.IntelligenceKit;exportclassCeliaSuggestionHelper{// 向小艺建议注册动态内容staticasyncregisterOrderSuggestion(order:Order):Promisevoid{constsuggestionItem{id:order_${order.id},title:${order.shopName}订单,subtitle:预计${order.etaMinutes}分钟送达,icon:$r(app.media.ic_delivery),intent:{action:ohos.intent.action.VIEW_ORDER,parameters:{orderId:order.id}},// 展示规则displayRules:{timeRange:{start:Date.now(),end:Date.now()60*60*1000},scenario:[lock_screen,negative_screen,notification_center]}};awaitsuggestion.publish(suggestionItem);}// 订单完成后移除建议staticasyncremoveSuggestion(orderId:string):Promisevoid{awaitsuggestion.revoke(order_${orderId});}}5.2 接入智慧搜索让应用内容可被系统全局搜索索引// 在 Ability 中处理搜索意图onCreate(want:Want):void{constactionwant.action;if(actionohos.intent.action.SEARCH){constquerywant.parameters?.[query]asstring;this.handleGlobalSearch(query);}}privatehandleGlobalSearch(query:string):void{// 在应用内执行搜索SearchService.search(query).then((results){// 将搜索结果返回给系统搜索页面this.context.terminateSelfWithResult({resultCode:0,want:{parameters:{searchResults:JSON.stringify(results)}}});});}5.3 接入系统分享面板让应用的能力出现在系统分享菜单中// module.json5 中注册分享能力{abilities:[{name:ShareAbility,skills:[{actions:[ohos.intent.action.SEND],entities:[ohos.intent.entity.SHARE],uris:[{scheme:harmonyfood,host:share}]}]}]}// ShareAbility.etsexportdefaultclassShareAbilityextendsUIAbility{onCreate(want:Want):void{constsharedTextwant.parameters?.[sharedText]asstring;constsharedImagewant.parameters?.[sharedImage]asstring;// 打开分享编辑页this.context.startAbility({bundleName:com.example.food,abilityName:ShareEditAbility,parameters:{sharedText,sharedImage}});}}六、跳转效果与交互体验6.1 跳转动画配置意图框架支持自定义跳转动画提升跨应用跳转的连贯性import{window}fromkit.WindowManager;onWindowStageCreate(windowStage:window.WindowStage):void{windowStage.getMainWindow().then((win){win.setTransitionAnimation({type:window.TransitionType.SLIDE,direction:window.TransitionDirection.RIGHT,duration:300,curve:Curve.EaseInOut});});}6.2 跳转效果示意图上图展示了通过意图框架从系统搜索直达应用订单详情页的跳转效果。整个过程流畅自然用户无需手动打开应用、无需在应用内再次搜索实现了意图即入口的体验闭环。七、意图框架最佳实践7.1 注册规范实践说明意图命名标准化遵循Verb Noun结构如QueryOrderStatus、CreateAppointment参数最小化仅声明业务必需的参数可选参数标记required: falseURI 稳定性自定义 Scheme 一旦发布不得变更避免已有外部链接失效动作复用优先使用系统标准动作如VIEW、SEND、SEARCH减少自定义动作7.2 体验优化优化项说明参数兜底缺少必需参数时不要直接报错而是引导用户补全加载态意图跳转涉及跨应用调度需展示加载指示器返回路径跨应用跳转后用户按返回键应回到原应用而非桌面上下文保留唤起目标应用时传递来源标识便于目标应用做个性化处理7.3 安全与隐私注意点措施参数校验所有通过 Intent 传入的参数必须做合法性校验权限控制敏感操作如支付、删除需在 Intent Handler 中再次校验权限exported 控制仅将需要对外暴露的 Ability 标记exported: true数据脱敏通过 Intent 传递的数据避免包含用户敏感信息八、总结HarmonyOS 6.1 的意图框架是连接用户、系统与应用的智能高速公路。它让应用从被动等待打开转变为主动响应需求是鸿蒙生态从应用为中心向服务为中心演进的关键基础设施。本文从注册、识别、跳转到系统入口接入完整演示了意图框架的实战路径意图注册在module.json5中通过skills和intents声明能力契约意图识别系统通过 NLP 引擎解析用户输入匹配注册的能力跨应用跳转使用标准动作或 URI Scheme 实现应用间的无缝调用系统入口接入小艺建议、智慧搜索、系统分享面板获取流量曝光体验打磨优化跳转动画、参数兜底、返回路径保障交互连贯性。开发者行动清单梳理应用的核心能力按Verb Noun规范命名意图在module.json5中注册标准动作、实体类型和 URI Scheme为每个意图定义清晰的参数约束和兜底策略实现 Ability 的onCreate/onNewWant正确处理意图参数接入小艺建议让应用在合适场景主动出现在用户面前注册系统分享能力出现在分享面板中配置跳转动画让跨应用跳转更加自然流畅做好参数校验和安全控制防止 Intent 注入攻击。意图框架的潜力远不止于此。随着小艺大模型能力的持续增强未来的鸿蒙生态将支持更加复杂的自然语言意图理解——用户只需说帮我找一家评分 4.5 以上、30 分钟内能送达的川菜馆系统就能自动解析多重约束条件匹配最合适的应用与功能。现在接入意图框架就是在为未来的智能分发时代布局。转载自https://blog.csdn.net/u014727709/article/details/162937698欢迎 点赞✍评论⭐收藏欢迎指正

相关新闻

Adobe-GenP 3.0终极指南:轻松配置Adobe全家桶的完整教程

Adobe-GenP 3.0终极指南:轻松配置Adobe全家桶的完整教程

Adobe-GenP 3.0终极指南:轻松配置Adobe全家桶的完整教程 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的复杂配置而烦恼吗…

2026/10/14 3:52:20 阅读更多 →
金融文档智能审核系统怎么做数据复核?从表格解析到勾稽检查

金融文档智能审核系统怎么做数据复核?从表格解析到勾稽检查

金融文档智能审核系统怎么做数据复核?从表格解析到勾稽检查 金融文档智能审核系统的难点,不是把文档内容扫描一遍,而是把分散在正文、表格、脚注、附件和不同版本材料里的数据关系识别出来。 招股说明书、募集说明书、年报、审计报告、问询…

2026/10/14 13:48:06 阅读更多 →
用卡尼曼双系统理论解构AI认知偏差与可解释性

用卡尼曼双系统理论解构AI认知偏差与可解释性

1. 项目概述:当卡尼曼的双系统认知模型撞上现代AI系统“Thinking, Fast and Slow”不是一本讲AI的书,但它正在成为理解AI行为最锋利的一把解剖刀。我第一次在实验室里调试一个图像分类模型时,它把一张加了轻微噪声的校车图片稳稳判为“鳄鱼”…

2026/10/14 8:22:45 阅读更多 →

最新新闻

Hive substr中文乱码根源与5种实战解决方案

Hive substr中文乱码根源与5种实战解决方案

1. 项目概述:当Hive的substr遇上中文乱码,不是函数错了,是字符集在“说方言”你有没有遇到过这样的场景:一条日志字段里明明存着“用户_张三_20240516_订单完成”,用substr(col, 4, 6)想截出“张三”两个字&#xff0c…

2026/10/14 13:49:58 阅读更多 →
接口性能优化实战:从2秒到200ms的三层击破法

接口性能优化实战:从2秒到200ms的三层击破法

1. 这不是玄学,是可复现的接口性能优化实战“接口响应时间从2秒压到200毫秒以内”——这句话在很多技术团队的周会上被反复提起,听起来像一句目标口号,甚至带点理想主义色彩。但在我参与过的三个高并发业务系统重构中,它是一条必须…

2026/10/14 13:49:58 阅读更多 →
Hive substr中文乱码根源与字符安全截取方案

Hive substr中文乱码根源与字符安全截取方案

1. 项目概述:为什么一个看似简单的substr函数会突然在中文场景下“罢工”最近在某数据中台的日常ETL任务维护中,我连续三天被同一个报错堵在工位上:java.lang.StringIndexOutOfBoundsException: String index out of range,堆栈指…

2026/10/14 13:49:58 阅读更多 →
Ponytail 阅读进度条插件:滚动进度原理、接入与性能优化指南

Ponytail 阅读进度条插件:滚动进度原理、接入与性能优化指南

做内容站这几年,我一直有个执念:长文阅读体验不能只靠排版,还得给读者一点“进度反馈”。早先试过在文章顶部加一个手写的滚动进度条,但那种零散代码维护起来太麻烦,后来换成了开源的轻量级滚动进度插件,也…

2026/10/14 13:49:58 阅读更多 →
iOS容器底层探秘:NSMutableArray、NSDictionary、NSSet与NSCache深度解析

iOS容器底层探秘:NSMutableArray、NSDictionary、NSSet与NSCache深度解析

做iOS开发久了,数组、字典、集合这些容器天天在用,但真被人问一句NSMutableArray底层到底怎么扩容、NSDictionary凭什么查得那么快、NSCache和NSMutableDictionary除了线程安全还有什么本质区别、copy和mutableCopy的坑到底在哪,很多人会愣一…

2026/10/14 13:49:58 阅读更多 →
整车八自由度Simulink动力学模型搭建:从方程到仿真验证

整车八自由度Simulink动力学模型搭建:从方程到仿真验证

做整车动力学仿真的人,几乎都会经历从二自由度自行车模型起步,再逐步往多自由度模型走的过程。二自由度模型能把横摆和侧向运动的基本逻辑讲清楚,但一涉及到载荷转移、侧倾对轮荷分布的影响、四个车轮独立的转速动力学,它就完全不…

2026/10/14 13:48:57 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →