如何实现桌面快捷方式【1】--ArkTS开发

2025-06-21 21:46:24
111次阅读
0个评论

前言

我们一直会把卡片作为一种app的快捷入口来使用,但是我认为实际上这是错误的。因为卡片应当是用来做简单交互的,交互后如有需要再进入app对应的页面,而不是把“引导用户进入app”作为主要目的。大家其实一直都忽略了一种入口方式,即快捷入口。今天我用了一个下午为我的“真律法律咨询平台”app新增了这个功能,中间踩了不少的坑……为了方便大家的开发,我来分享一下具体的开发流程

示例

当长按App的图标时,除了基本的“添加应用锁”和“卸载”外,还可以弹出其他的快捷入口,更厉害的是,这几个快捷入口,是可以拖出来的,会形成一个单独的类似“app”的样式,也可以点击。

实现方式

相关的官方文档在 功能开发 -- 应用框架 -- 程序包结构 -- 桌面快捷方式。在gitee上也有示例项目,但是官方文档甚至是官方示例代码……还是有一些缺失和错误的……我们先来从最基础的开始讲起

1. 创建配置文件

首先在/resources/base/profile/目录下创建名为shortcuts_config.json的文件,内容如下

{
  "shortcuts": [
    {
      "shortcutId": "id_company",  //这个其实随便填,但是要保证每个的id都不同
      "label": "$string:Go_to_the_Company", //这里的内容定义在string.json里
      "icon": "$media:company", //对应的图片文件
      "wants": [
        {
          "bundleName": "com.example.desktopshortcuts", //你的包名
          "moduleName": "entry",  //这里不用改
          "abilityName": "EntryAbility", //这里也不用改
          "parameters": {
            "shortCutKey": "CompanyPage" //parameters的作用是后续来区分进入哪个页面的,不代表就是页面的名字
          }
        }
      ]
    },
    //这里就是第二个快捷入口的配置内容
    {
      "shortcutId": "id_house",
      "label": "$string:Go_to_House",
      "icon": "$media:house",
      "wants": [
        {
          "bundleName": "com.example.desktopshortcuts",
          "moduleName": "entry",
          "abilityName": "EntryAbility",
          "parameters": {
            "shortCutKey": "HousePage"
          }
        }
      ]
    }
  ]
}

2. 配置module.json5文件

在module.json5配置文件中的abilities标签下的metadata中设置resource属性值为$profile:shortcuts_config,指定应用的快捷方式配置文件,即使用shortcuts_config.json文件中的shortcuts配置。 这里一定要注意位置,是abilities标签下的metadata,而不是和abilities平级的metadata,因为我们在配置client_id的时候,他所属的metadata是和abilities平级的,如果你之前配置过这种情况下的metadata,你会发现他不会报错……但是就不会出现快捷入口……

后续内容请看下一篇……

收藏00

登录 后评论。没有帐号? 注册 一个。