• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 创建应用静态快捷方式
2<!--Kit: Ability Kit-->
3<!--Subsystem: BundleManager-->
4<!--Owner: @wanghang904-->
5<!--Designer: @hanfeng6-->
6<!--Tester: @kongjing2-->
7<!--Adviser: @Brilliantry_Rui-->
8
9随着应用的功能越来越复杂,用户在使用应用时,找到某个功能的操作步骤也变得更加繁琐。为提升用户体验,可以对应用中常用的功能创建对应的桌面快捷方式,以达到快速启动应用、一键直达特定功能等目的。例如相机应用的 “快速拍照”、便签应用的 “新建便签” 和地图应用的常用地点导航等功能的快捷方式,用户通过快捷方式可以快速进入特定功能页面,既能大大提高操作效率,同时也增加了用户对应用的依赖性。使用快捷方式,还可以实现个性化定制的需求,创建多个快捷方式,以满足个性化的工作流程和操作偏好。
10
11## 场景介绍
12
13以导航场景为例,用户使用地图应用导航时,通常先搜索目的地,然后开始导航。为了提升导航效率和操作便捷性,建议在地图应用中添加常去地点的快捷方式,如公司、家等。添加这些快捷方式后,用户长按应用图标,即可打开快捷方式入口,快速启动导航。详情请参考[桌面快捷方式](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-desktop-shortcuts)14
15## 配置方法
16
17下面介绍在工程中配置静态快捷方式的方法。
18
191. 在entry/src/main/resources/base/element/string.json配置资源文件如下。
20    ```json
21    {
22      "string": [
23        // ···
24        {
25          "name": "share",
26          "value": "分享好友"
27        },
28        {
29          "name": "add",
30          "value": "添加收藏"
31        }
32      ]
33    }
34    ```
35
36
372. 配置快捷方式文件。
38
39    在模块的/resources/base/profile/目录下配置[快捷方式的配置文件](module-configuration-file.md#shortcuts标签),如shortcuts_config.json,拷贝示例代码需要删除注释。
40
41    ```json
42    {
43      "shortcuts": [
44       {
45          "shortcutId": "id_test1",  // 标识快捷方式,在应用有多个快捷方式时,该字段可作为快捷方式的唯一标识符,不支持通过资源索引的方式($string)配置该字段
46          "label": "$string:add",  // 标识该快捷方式对外显示的名称
47          "icon": "$media:add_icon",  // 标识该快捷方式对外显示的图片,需要在entry/src/main/resources/base/media中添加名称为add_icon的图片
48          "wants": [
49            {
50              "bundleName": "com.ohos.hello",   // 对应该快捷方式对应拉起组件的包名
51              "moduleName": "entry",    // 对应该快捷方式对应拉起组件的模块名
52              "abilityName": "EntryAbility1",   // 对应该快捷方式对应拉起组件的组件名
53              "parameters": {
54                "testKey": "testValue"   // 表示拉起快捷方式时的自定义数据
55              }
56            }
57          ]
58        },
59        {
60          "shortcutId": "id_test2",  // 标识快捷方式,在应用有多个快捷方式时,该字段可作为快捷方式的唯一标识符,不支持通过资源索引的方式($string)配置该字段
61          "label": "$string:share",  // 标识该快捷方式对外显示的名称
62          "icon": "$media:share_icon",  // 标识该快捷方式对外显示的图片,需要在entry/src/main/resources/base/media中添加名称为share_icon的图片
63          "wants": [
64            {
65              "bundleName": "com.ohos.hello",   // 对应该快捷方式对应拉起组件的包名
66              "moduleName": "entry",    // 对应该快捷方式对应拉起组件的模块名
67              "abilityName": "EntryAbility",   // 对应该快捷方式对应拉起组件的组件名
68              "parameters": {
69                "testKey": "testValue"   // 表示拉起快捷方式时的自定义数据
70              }
71            }
72          ]
73        }
74      ]
75    }
76    ```
77
783. 在应用的module.json5文件中配置metadata,指向快捷方式的配置文件。
79
80    ```json
81    {
82      "module": {
83      // ...
84        "abilities": [
85          {
86            "name": "EntryAbility",
87            "srcEntry": "./ets/entryability/EntryAbility.ets",
88            // ...
89            "metadata": [
90              {
91                "name": "ohos.ability.shortcuts",  // 配置快捷方式,该值固定为ohos.ability.shortcuts
92                "resource": "$profile:shortcuts_config"  // 指定shortcuts信息的资源位置
93              }
94            ]
95          }
96        ]
97      }
98    }
99    ```
100
101安装应用后,长按桌面上的应用图标,图标上方会显示开发者配置的快捷方式:“添加收藏”和“分享好友”。点击相应标签,可启动对应的组件。应用配置的静态快捷方式在桌面上的展示效果如下图所示。
102
103<img src="figures/shortcut_display.jpg"/>
104
105