写点什么

HarmonyOS 运动开发:打造便捷的静态快捷菜单

  • 2025-06-12
    北京
  • 本文字数:1819 字

    阅读完需:约 6 分钟

##鸿蒙核心技术 ##运动开发 #


前言


在运动类应用中,用户往往需要快速访问常用功能,如查看成绩、赛事信息或开始运动。为了提升用户体验,鸿蒙(HarmonyOS)提供了静态快捷菜单功能,允许用户从桌面直接跳转到应用的特定页面。本文将结合鸿蒙开发实战经验,深入解析如何开发静态快捷菜单,实现快速跳转页面的功能。



一、为什么需要静态快捷菜单


静态快捷菜单为用户提供了一种快速进入应用特定功能的方式,无需打开应用后再进行多次点击。这对于运动类应用尤其重要,因为用户可能需要在运动前快速启动运动模式或查看运动数据。通过静态快捷菜单,用户可以直接从桌面启动这些功能,大大提高了应用的便捷性和用户体验。


二、配置静态快捷菜单


1.配置文件


静态快捷菜单的配置文件位于base->profile目录下。你需要在该目录下创建一个shortcuts_config.json文件,并定义快捷菜单项。以下是配置文件的核心内容:


{  "shortcuts": [    {      "shortcutId": "my_scores",      "label": "$string:shortcut_grades",      "icon": "$media:icon_shortcut_grades",      "wants": [        {          "bundleName": "包名",          "moduleName": "entry",          "abilityName": "EntryAbility",          "parameters": {            "action": "action.view.scores"          }        }      ]    },    {      "shortcutId": "my_events",      "label": "$string:shortcut_race",      "icon": "$media:icon_shortcut_race",      "wants": [        {          "bundleName": "包名",          "moduleName": "entry",          "abilityName": "EntryAbility",          "parameters": {            "action": "action.view.events"          }        }      ]    },    {      "shortcutId": "start_running",      "label": "$string:shortcut_sport",      "icon": "$media:icon_shortcut_sport",      "wants": [        {          "bundleName": "包名",          "moduleName": "entry",          "abilityName": "EntryAbility",          "parameters": {            "action": "action.start.running"          }        }      ]    }  ]}
复制代码


核心点解析


shortcutId:每个快捷菜单项的唯一标识符。


label:快捷菜单项的显示名称,支持国际化资源。


icon:快捷菜单项的图标资源。


wants:定义了点击快捷菜单项时要启动的目标页面及其参数。


2.在模块的abilities中添加配置


在模块的abilities配置文件中,添加对快捷菜单配置的引用。以下是配置代码:


"metadata": [  {    "name": "ohos.ability.shortcuts",    "resource": "$profile:shortcuts_config"  }]
复制代码


核心点解析


metadata:定义了与能力相关的元数据。


name:元数据的名称,固定为ohos.ability.shortcuts


resource:指向快捷菜单配置文件的路径。


三、处理快捷菜单跳转


EntryAbility中,你需要处理快捷菜单项的点击事件。通过onNewWant方法,你可以捕获快捷菜单项的点击事件,并根据传递的参数跳转到相应的页面。以下是处理逻辑的核心代码:


onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {  // 处理快捷方式跳转  if (want.parameters?.action) {    let action = want.parameters['action'];    if (action) {      this.handleShortcutAction(action as string);    }  }}
private handleShortcutAction(action: string): void { switch (action) { case 'action.view.scores': LibNavigator.pushPathByName(SportRouteName.MetronomePage, undefined); break; case 'action.view.events': LibNavigator.pushPathByName(SportRouteName.FileSelectPage, undefined); break; case 'action.start.running': LibNavigator.pushPathByName(SportRouteName.RunningSettingPage, undefined); break; default: entryLogger.warn(`Unknown shortcut action: ${action}`); }}
复制代码


核心点解析


onNewWant:当用户点击快捷菜单项时,系统会调用onNewWant方法。


want.parameters:获取传递的参数,包括自定义的action


handleShortcutAction:根据action的值,调用相应的页面跳转逻辑。


四、总结与展望


通过鸿蒙的静态快捷菜单功能,你可以为用户提供快速跳转到应用特定功能的便捷方式。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2021-11-19 加入

还未添加个人简介

评论

发布
暂无评论
HarmonyOS运动开发:打造便捷的静态快捷菜单_王二蛋和他的张大花_InfoQ写作社区