【HarmonyOS 5】桌面快捷方式功能实现详解

GeorgeGcs
• 阅读 2

##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 在移动应用开发中,如何让用户快速触达核心功能,是目前很常见的功能之一。 鸿蒙系统提供的桌面快捷方式(Shortcuts)功能,允许开发者为应用内常用功能创建直达入口,用户通过长按应用图标即可快速启动特定功能,大幅减少操作层级。 本文将结合地图导航场景,详细解析鸿蒙快捷方式的实现原理与开发流程。结合华为官方开源示例 DesktopShortcut 展开,该示例基于HarmonyOS 5.0实现,完整演示了地图导航场景的快捷方式开发流程。

二、需求分析与示例工程介绍 以地图应用为例,用户日常高频使用“回家”“去公司”等导航功能。传统流程需先打开应用、搜索目的地、再启动导航。通过快捷方式,可实现:

  1. 长按应用图标,在快捷方式列表中直接点击“回家”或“去公司”;
  2. 拖动快捷方式到桌面,通过独立图标一键启动导航。

工程目录介绍 ├── entry/src/main/ets
│ ├── entryability
│ │ └── EntryAbility.ets // 核心逻辑:处理快捷方式参数并跳转页面 │ └── pages
│ ├── GoCompany.ets // 公司导航页面(@Entry装饰) │ ├── GoHouse.ets // 回家导航页面(@Entry装饰) │ └── Index.ets // 应用首页 ├── entry/src/main/resources
│ └── base/profile
│ └── shortcuts_config.json // 快捷方式元数据配置 └── module.json5 // 模块配置文件,关联快捷方式 三、快捷方式功能实现步骤 1、 核心配置文件 (1)shortcuts_config.json:定义快捷方式的元数据,包括ID、名称、图标及目标跳转信息。 { "shortcuts": [ { "shortcutId": "id_go_company", "label": "$string:go_company", // 对应resources/base/element/string.json中的字符串资源 "icon": "$media:icon_company", // 对应resources/base/media目录下的图标文件 "wants": [ { "bundleName": "com.example.desktopshortcut", // 应用包名(需与module.json5一致) "moduleName": "entry", // 模块名(固定为entry) "abilityName": "EntryAbility", // 目标Ability(入口Ability) "parameters": { "page": "GoCompany" } // 自定义参数:标识目标页面 } ] }, { "shortcutId": "id_go_house", "label": "$string:go_home", "icon": "$media:icon_home", "wants": [ { "bundleName": "com.example.desktopshortcut", "moduleName": "entry", "abilityName": "EntryAbility", "parameters": { "page": "GoHouse" } // parameters键名可自定义(示例中使用page而非前文的shortCutKey),需与代码逻辑保持一致。 } ] } ] }

(2)module.json5:声明快捷方式配置文件的引用,关联至应用模块。 { "module": { "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "skills": [ { "entities": ["entity.system.home"], "actions": ["ohos.want.action.home"] } ], "metadata": [ { "name": "ohos.ability.shortcuts", "resource": "$profile:shortcuts_config" // 引用profile目录下的配置文件 } ] } ] } } (3)关键字段说明 字段 说明 shortcutId 唯一标识(长度≤63字节),如id_company。 label 显示名称(支持资源索引),如$string:Go_to_the_Company。 icon 图标资源索引,如$media:company。 wants 目标跳转信息,包含包名、模块名、Ability名称及自定义参数(parameters)。 2、快捷入口跳转逻辑 import router from '@ohos.router';

export default class EntryAbility extends Ability { private context: UIAbilityContext | undefined;

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { super.onCreate(want, launchParam); this.context = this.getContext(); // 首次启动时加载首页 router.pushUrl({ url: 'pages/Index', context: this.context }); }

onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam) { const page = want.parameters?.page; // 提取快捷方式传递的参数 if (page && this.context) { router.pushUrl({ url: pages/${page}, // 动态拼接页面路径 context: this.context }); } } }

注意

  1. 快捷方式数量:仅支持跳转至UIAbility入口页面,最多配置4个。
  2. 参数校验: 在onNewWant中增加参数非空校验,避免因快捷方式参数缺失导致应用崩溃:
    if (!page || !this.context) { hilog.error(0x0000, 'Shortcut', 'Invalid parameters or context'); return; }
  3. 卡片:可展示动态内容,支持跳转至非入口页面。
点赞
收藏
评论区
推荐文章
GeorgeGcs GeorgeGcs
13小时前
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
【HarmonyOS5入门系列】鸿蒙HarmonyOS示例项目讲解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言:移动开发声明式UI框架的技术变革在移动操作系统的发展历程中,UI开发模式经历了从命令式到声明式的重大变革。根据
GeorgeGcs GeorgeGcs
13小时前
【HarmonyOS 5】AttributeModifier和AttributeUpdater区别详解
【HarmonyOS5】AttributeModifier和AttributeUpdater区别详解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、AttributeModifier和AttributeUpdater的定义和作用1
GeorgeGcs GeorgeGcs
4小时前
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言图(11)HarmonyOS系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。其核心能力包括:扫描合同、票据、会议记录并保存为PDF分享。拍摄课堂PPT、书
GeorgeGcs GeorgeGcs
4小时前
【HarmonyOS NEXT】鸿蒙应用实现手机摇一摇功能
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言手机摇一摇功能,是通过获取手机设备,加速度传感器接口,获取其中的数值,进行逻辑判断实现的功能。在鸿蒙中手机设备传感器@ohos.sensor(传感器)的系统API监听有以下:@oh
GeorgeGcs GeorgeGcs
4小时前
【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言目前的鸿蒙开发者,大多数是从前端或者传统移动端开发方向,转到鸿蒙应用开发方向。前端开发同学对于开发范式很熟悉,但是对于工作流程和开发方式是会有不适感,其实移动应用开发与前端开发,最
GeorgeGcs GeorgeGcs
4小时前
【HarmonyOS NEXT】一键扫码功能
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财前言鸿蒙在api10之后,对系统api的基础上,封装了较为复杂功能的开发工具包,统一称之为Kit。这些Kit根据功能定义的不同,划分为不同的种类Kit。如下图所示:其实可以理解为集成在系统
GeorgeGcs GeorgeGcs
4小时前
【HarmonyOS 5】鸿蒙组件&模板服务详解 - 助力高效开发的利器
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在移动应用开发领域,效率与质量始终是开发者追求的核心目标。鸿蒙系统作为新兴的操作系统,为开发者提供了丰富且强大的开发资源,其中鸿蒙组件&模板服务更是成为开发者快速构建高质量应用的得
GeorgeGcs GeorgeGcs
2小时前
【HarmonyOS 5】如何开启DevEco Studio热更新调试应用模式
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、AttributeModifier和AttributeUpdater的定义和作用1.AttributeModifier是ArkUI组件的动态属性,提供属性设置功能。开发者可使用attr
GeorgeGcs GeorgeGcs
2小时前
【HarmonyOS 5】鸿蒙用户头像编辑功能实践
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言1、应用背景在鸿蒙化开发过程中,我们发现最基本常见的功能用户头像的编辑,实现方式和Android与IOS有极大的不同。在实际开发和调研的过程中,我们发现并总结了鸿蒙隐私处理与业内A
GeorgeGcs GeorgeGcs
2小时前
【HarmonyOS 5】鸿蒙Web组件和内嵌网页双向通信DEMO示例
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在ArkUI开发中,Web组件(Web)允许开发者在应用内嵌入网页,实现混合开发场景。本文将通过完整DEMO,详解如何通过WebviewController实现ArkUI与内嵌网页
GeorgeGcs
GeorgeGcs
Lv1
男 · 金融头部企业 · 鸿蒙应用架构师
HarmonyOS认证创作先锋,华为HDE专家,鸿蒙讲师,作者。目前任职鸿蒙应用架构师。 历经腾讯,宝马,研究所,金融。 待过私企,外企,央企。 深耕大应用开发领域十年。 AAE,Harmony(OpenHarmony\HarmonyOS),MAE(Android\IOS),FE(H5\Vue\RN)。
文章
56
粉丝
1
获赞
2