在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【HarmonyOS 5】桌面快捷方式功能實現詳解

HarmonyOS解決方案 ? 來源:HarmonyOS解決方案 ? 作者:HarmonyOS解決方案 ? 2025-06-21 16:42 ? 次閱讀

HarmonyOS 5】桌面快捷方式功能實現詳解

##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財#

一、前言

在移動應用開發中,如何讓用戶快速觸達核心功能,是目前很常見的功能之一。

鴻蒙系統提供的**桌面快捷方式(Shortcuts)**功能,允許開發者為應用內常用功能創建直達入口,用戶通過長按應用圖標即可快速啟動特定功能,大幅減少操作層級。

本文將結合地圖導航場景,詳細解析鴻蒙快捷方式的實現原理與開發流程。結合華為官方開源示例 DesktopShortcut 展開,該示例基于HarmonyOS 5.0實現,完整演示了地圖導航場景的快捷方式開發流程。

二、需求分析與示例工程介紹

以地圖應用為例,用戶日常高頻使用“回家”“去公司”等導航功能。傳統流程需先打開應用、搜索目的地、再啟動導航。通過快捷方式,可實現:

  1. 長按應用圖標 ,在快捷方式列表中直接點擊“回家”或“去公司”;
  2. 拖動快捷方式到桌面 ,通過獨立圖標一鍵啟動導航。
    image.png

工程目錄介紹

├── 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;
}
  1. 卡片 :可展示動態內容,支持跳轉至非入口頁面。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    59

    文章

    2545

    瀏覽量

    43843
  • HarmonyOS
    +關注

    關注

    80

    文章

    2085

    瀏覽量

    32363
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    HarmonyOS 5】VisionKit人臉活體檢測詳解

    HarmonyOS 5】VisionKit人臉活體檢測詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、VisionKit人臉活體
    的頭像 發表于 06-21 11:52 ?79次閱讀
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】VisionKit人臉活體檢測<b class='flag-5'>詳解</b>

    HarmonyOS 5 makeObserved接口詳解

    HarmonyOS 5】makeObserved接口詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、makeObserved接口
    的頭像 發表于 06-16 17:58 ?135次閱讀

    HarmonyOS 5】鴻蒙CodeGenie AI輔助編程工具詳解

    HarmonyOS 5】鴻蒙CodeGenie AI輔助編程工具詳解 一、前言 1、CodeGenie是什么?CodeGenie (代碼精靈)作為鴻蒙DevEco IDE自帶的AI輔助編碼工具
    發表于 06-11 16:34

    HarmonyOS基礎組件:Button三種類型的使用

    簡介 HarmonyOS在明年將正式不再兼容Android原生功能,這意味著對于客戶端的小伙伴不得不開始學習HarmonyOS開發語言。本篇文章主要介紹鴻蒙中的Button使用。 Harmon
    的頭像 發表于 06-09 15:48 ?131次閱讀
    <b class='flag-5'>HarmonyOS</b>基礎組件:Button三種類型的使用

    HarmonyOS5云服務技術分享--云數據庫使用指南

    輕量級、高性能的云端數據存儲能力,支持實時同步和數據加密。通過簡單的API調用,你可以快速實現數據持久化、復雜查詢和多端同步。以下是高頻操作詳解? ? ??寫入數據(Upsert)?? ??功能
    發表于 05-22 18:29

    HarmonyOS5云服務技術分享--ArkTS開發Node環境

    氣的方式探索這個功能,結尾還有實用總結和鼓勵彩蛋哦~? ? 一、HarmonyOS云函數開發:核心能力與價值 HarmonyOS的云函數(Serverless)為開發者提供了??無服務
    發表于 05-22 17:21

    HarmonyOS5云服務技術分享--登錄郵件功能整理

    服務中的??郵箱登錄認證??功能,基于ArkTS API 12實現。無論你是剛接觸HarmonyOS生態,還是想優化現有登錄流程,這篇文章都將用清晰的代碼示例和通俗的講解,帶你搞定郵箱認證的完整
    發表于 05-22 16:04

    HarmonyOS5云服務技術分享--手機號登錄教程

    ;, err.remainingTimes, \"次嘗試機會\"); } }); ? 嗨,各位HarmonyOS開發者小伙伴!今天咱們來聊聊如何在應用中集成「手機號登錄認證」功能。無論是用\"
    發表于 05-22 15:37

    HarmonyOS5云服務技術分享--認證文檔問題

    文「集成SDK」章節)。 初始化SDK并添加網絡權限。 ??5. 實現賬號登錄認證?? ??支持方式??: ??標準登錄??:手機、郵箱、華為賬號、自有賬號、匿名賬號。 ??高級功能
    發表于 05-22 13:20

    AD軟件快捷鍵設置和導入方法

    鼠標放在上圖中的“交互式布線”上,然后按下Ctrl鍵,同時點擊鼠標左鍵,就出現下圖所示的對話框,在這里就可以修改走線命令的快捷鍵了。 接著,選擇快捷方式下面的“主要的”右側,按下小鍵盤的5,就看
    發表于 03-26 10:03

    使用HarmonyOS NEXT實現簽名板的功能

    theme: greenwillow 簡介 大家好,我是一只會打代碼的羊。今天來分享一篇之前使用ArkTS API9版本實現的簽名板功能,目前鴻蒙已經推出API12了,對比API9的時候,現在實現
    的頭像 發表于 03-16 16:00 ?389次閱讀

    分享一款功能強大的QuarkXPress桌面排版軟件

    QuarkXPress 是功能強大的原創桌面排版軟件。經過 40 多年的不斷完善,如今它已成為創意專業人士的首選軟件,用于實現出色的印刷和數字設計。 您可以選擇預購軟件并永久使用,也可以選擇訂閱
    的頭像 發表于 03-14 09:31 ?650次閱讀
    分享一款<b class='flag-5'>功能</b>強大的QuarkXPress<b class='flag-5'>桌面</b>排版軟件

    OpenAI桌面版ChatGPT新增應用協作功能

    近日,OpenAI宣布了一項重要更新,為桌面版ChatGPT推出了“與應用協作”(Work With Apps)功能。這一新功能旨在支持原生應用程序的自動化協作,為用戶帶來更加高效和便捷
    的頭像 發表于 12-23 10:52 ?606次閱讀

    按扣一鍵插拔“就是這么快”!分享LP快捷連接器連接方式特點

    連接器的公端與母端都會采用某種結構來實現連接鎖定并便于分離操作,這就是連接器的連接結構方式。目前連接器的連接結構方式也是各有不同,特點相異。按扣直插式連接方式作為一種常用的連接
    的頭像 發表于 08-30 12:22 ?660次閱讀
    按扣一鍵插拔“就是這么快”!分享LP<b class='flag-5'>快捷</b>連接器連接<b class='flag-5'>方式</b>特點

    HarmonyOS NEXT Developer Beta1最新術語表

    戶應用程序的重要信息以服務卡片的形式展示在桌面,用戶可通過快捷手勢使用卡片,以達到服務直達、減少層級跳轉的目的。 Stage模型 HarmonyOS 3.1 Develper Preview版本開始新增
    發表于 06-27 16:16
    主站蜘蛛池模板: 超级碰碰青草免费视频92 | 成人在线色视频 | 一级黄色片a | 欧美一区二区三区精品 | www.毛片在线观看 | 日本激情网| 一级国产特黄aa大片 | 亚洲干综合 | 男人的天堂午夜 | 精品一区二区三区三区 | 狠狠艹视频 | 天天干亚洲 | 99色婷婷| 日本免费不卡在线一区二区三区 | 亚洲综人网 | 99精品视频免费 | 亚洲乱论| 一级特黄高清完整大片 | 苦瓜se影院在线视频网站 | 青草视频网站在线观看 | 国产三级日本三级韩国三级在线观看 | 日本在线视频一区二区 | 黄视频网站免费 | 亚洲在线a | 三级黄色片在线播放 | 特黄特a级特别特级特毛片 特黄特色大片免费播放路01 | 97色噜噜 | 九九热免费在线观看 | 久久精品国产免费高清 | 高清视频一区二区 | 欧美黑人xxxx猛牲大交 | 国内久久精品视频 | 五月天婷婷在线观看 | 天天做爽夜夜做爽 | 成人国产在线视频 | 国产一区二区三区毛片 | 国产精品久久久久久久久久妇女 | 老色99久久九九精品尤物 | 国产区一区二区三区 | 日韩啪啪片 | 在线视频 二区 |