1e41f4b71Sopenharmony_ci# **@ohos.bundle.shortcutManager (shortcutManager模块)(系统接口)**
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块提供系统应用对于快捷方式的增加、删除,以及查询能力,包括[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)信息的增加、删除以及查询等。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> 本模块为系统接口。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 导入模块
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport { shortcutManager } from '@kit.AbilityKit';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci## shortcutManager.addDesktopShortcutInfo<sup>12+</sup>
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ciaddDesktopShortcutInfo(shortcutInfo: [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md), userId: number) : Promise\<void>
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci增加指定用户的[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)。
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_SHORTCUTS
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Launcher
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**参数:**
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci| 参数名     | 类型   | 必填 | 说明         |
33e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | -------------- |
34e41f4b71Sopenharmony_ci| shortcutInfo | [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md) | 是   | 快捷方式信息。 |
35e41f4b71Sopenharmony_ci| userId     | number | 是   | 用户id。 |
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**错误码:**
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                 |
42e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- |
43e41f4b71Sopenharmony_ci| 201 | Verify permission denied. |
44e41f4b71Sopenharmony_ci| 202 | Permission denied, non-system app called system api. |
45e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
46e41f4b71Sopenharmony_ci| 17700001 | The specified bundle name is not found.  |
47e41f4b71Sopenharmony_ci| 17700004 | The specified user ID is not found.      |
48e41f4b71Sopenharmony_ci| 17700026 | The specified bundle is disabled. |
49e41f4b71Sopenharmony_ci| 17700061 | The specified app index is invalid. |
50e41f4b71Sopenharmony_ci| 17700070 | The specified shortcut id is illegal. |
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**示例:**
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci```ts
55e41f4b71Sopenharmony_ciimport { shortcutManager } from '@kit.AbilityKit';
56e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci@Entry
59e41f4b71Sopenharmony_ci@Component
60e41f4b71Sopenharmony_cistruct ShortcutExample {
61e41f4b71Sopenharmony_ci  build() {
62e41f4b71Sopenharmony_ci    Column({ space: 20 }) {
63e41f4b71Sopenharmony_ci      Row({ space: 20 }) {
64e41f4b71Sopenharmony_ci        Button('add').onClick(() => {
65e41f4b71Sopenharmony_ci          let data: shortcutManager.ShortcutInfo = {
66e41f4b71Sopenharmony_ci            id: "test1",
67e41f4b71Sopenharmony_ci            bundleName: "com.example.myapplication",
68e41f4b71Sopenharmony_ci            moduleName: "hello",
69e41f4b71Sopenharmony_ci            hostAbility: "hello",
70e41f4b71Sopenharmony_ci            icon: "hello",
71e41f4b71Sopenharmony_ci            iconId: 1,
72e41f4b71Sopenharmony_ci            label: "hello",
73e41f4b71Sopenharmony_ci            labelId: 1,
74e41f4b71Sopenharmony_ci            wants: [],
75e41f4b71Sopenharmony_ci            appIndex: 0,
76e41f4b71Sopenharmony_ci            sourceType: 0,
77e41f4b71Sopenharmony_ci          }
78e41f4b71Sopenharmony_ci          try {
79e41f4b71Sopenharmony_ci            shortcutManager.addDesktopShortcutInfo(data, 100)
80e41f4b71Sopenharmony_ci              .then(() => {
81e41f4b71Sopenharmony_ci                console.log("addDesktopShortcutInfo success");
82e41f4b71Sopenharmony_ci              }).catch((err: BusinessError) => {
83e41f4b71Sopenharmony_ci              console.error(`addDesktopShortcutInfo errData is errCode:${err.code}  message:${err.message}`);
84e41f4b71Sopenharmony_ci            });
85e41f4b71Sopenharmony_ci          } catch (error) {
86e41f4b71Sopenharmony_ci            let code = (error as BusinessError).code;
87e41f4b71Sopenharmony_ci            let message = (error as BusinessError).message;
88e41f4b71Sopenharmony_ci            console.error(`addDesktopShortcutInfo error is errCode:${code}  message:${message}`);
89e41f4b71Sopenharmony_ci          }
90e41f4b71Sopenharmony_ci        })
91e41f4b71Sopenharmony_ci      }
92e41f4b71Sopenharmony_ci    }
93e41f4b71Sopenharmony_ci  }
94e41f4b71Sopenharmony_ci}
95e41f4b71Sopenharmony_ci```
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci## shortcutManager.deleteDesktopShortcutInfo<sup>12+</sup>
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_cideleteDesktopShortcutInfo(shortcutInfo: [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md), userId: number) : Promise\<void>
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci删除指定用户的[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)。
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_SHORTCUTS
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Launcher
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**参数:**
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci| 参数名     | 类型   | 必填 | 说明         |
112e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | -------------- |
113e41f4b71Sopenharmony_ci| shortcutInfo | [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md) | 是   | 快捷方式信息。 |
114e41f4b71Sopenharmony_ci| userId     | number | 是   | 用户id。 |
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**错误码:**
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                 |
121e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- |
122e41f4b71Sopenharmony_ci| 201 | Verify permission denied. |
123e41f4b71Sopenharmony_ci| 202 | Permission denied, non-system app called system api. |
124e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
125e41f4b71Sopenharmony_ci| 17700004 | The specified user ID is not found.       |
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**示例:**
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci```ts
130e41f4b71Sopenharmony_ciimport { shortcutManager } from '@kit.AbilityKit';
131e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci@Entry
134e41f4b71Sopenharmony_ci@Component
135e41f4b71Sopenharmony_cistruct ShortcutExample {
136e41f4b71Sopenharmony_ci  build() {
137e41f4b71Sopenharmony_ci    Column({ space: 20 }) {
138e41f4b71Sopenharmony_ci      Row({ space: 20 }) {
139e41f4b71Sopenharmony_ci        Button('delete').onClick(() => {
140e41f4b71Sopenharmony_ci          let data: shortcutManager.ShortcutInfo = {
141e41f4b71Sopenharmony_ci            id: "test1",
142e41f4b71Sopenharmony_ci            bundleName: "com.example.myapplication",
143e41f4b71Sopenharmony_ci            moduleName: "",
144e41f4b71Sopenharmony_ci            hostAbility: "",
145e41f4b71Sopenharmony_ci            icon: "",
146e41f4b71Sopenharmony_ci            iconId: 1,
147e41f4b71Sopenharmony_ci            label: "hello",
148e41f4b71Sopenharmony_ci            labelId: 1,
149e41f4b71Sopenharmony_ci            wants: [],
150e41f4b71Sopenharmony_ci            appIndex: 0,
151e41f4b71Sopenharmony_ci            sourceType: 0,
152e41f4b71Sopenharmony_ci          }
153e41f4b71Sopenharmony_ci          try {
154e41f4b71Sopenharmony_ci            shortcutManager.deleteDesktopShortcutInfo(data, 100)
155e41f4b71Sopenharmony_ci              .then(() => {
156e41f4b71Sopenharmony_ci                console.log("deleteDesktopShortcutInfo success");
157e41f4b71Sopenharmony_ci              }).catch((err: BusinessError) => {
158e41f4b71Sopenharmony_ci              console.error(`deleteDesktopShortcutInfo errData is errCode:${err.code}  message:${err.message}`);
159e41f4b71Sopenharmony_ci            });
160e41f4b71Sopenharmony_ci          } catch (error) {
161e41f4b71Sopenharmony_ci            let code = (error as BusinessError).code;
162e41f4b71Sopenharmony_ci            let message = (error as BusinessError).message;
163e41f4b71Sopenharmony_ci            console.error(`deleteDesktopShortcutInfo error is errCode:${code}  message:${message}`);
164e41f4b71Sopenharmony_ci          }
165e41f4b71Sopenharmony_ci        })
166e41f4b71Sopenharmony_ci      }
167e41f4b71Sopenharmony_ci    }
168e41f4b71Sopenharmony_ci  }
169e41f4b71Sopenharmony_ci}
170e41f4b71Sopenharmony_ci```
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci## shortcutManager.getAllDesktopShortcutInfo<sup>12+</sup>
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_cigetAllDesktopShortcutInfo(userId: number) : Promise<Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)>>
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci查询指定用户的所有[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)。
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_SHORTCUTS
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Launcher
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci**参数:**
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci| 参数名     | 类型   | 必填 | 说明         |
187e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | -------------- |
188e41f4b71Sopenharmony_ci| userId     | number | 是   | 被查询的用户id。 |
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**返回值:**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci| 类型                                                         | 说明                                                         |
193e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------------------------------------------ |
194e41f4b71Sopenharmony_ci| Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)> | Array形式返回[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)信息。 |
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci**错误码:**
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                 |
201e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- |
202e41f4b71Sopenharmony_ci| 201 | Verify permission denied. |
203e41f4b71Sopenharmony_ci| 202 | Permission denied, non-system app called system api. |
204e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
205e41f4b71Sopenharmony_ci| 17700004 | The specified user ID is not found.       |
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**示例:**
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci```ts
210e41f4b71Sopenharmony_ciimport { shortcutManager } from '@kit.AbilityKit';
211e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci@Entry
214e41f4b71Sopenharmony_ci@Component
215e41f4b71Sopenharmony_cistruct ShortcutExample {
216e41f4b71Sopenharmony_ci  build() {
217e41f4b71Sopenharmony_ci    Column({ space: 20 }) {
218e41f4b71Sopenharmony_ci      Row({ space: 20 }) {
219e41f4b71Sopenharmony_ci        Button('getall').onClick(() => {
220e41f4b71Sopenharmony_ci          try {
221e41f4b71Sopenharmony_ci            shortcutManager.getAllDesktopShortcutInfo(100)
222e41f4b71Sopenharmony_ci              .then((data: shortcutManager.ShortcutInfo[]) => {
223e41f4b71Sopenharmony_ci                console.log("Shortcut data is " + JSON.stringify(data));
224e41f4b71Sopenharmony_ci              }).catch((err: BusinessError) => {
225e41f4b71Sopenharmony_ci              console.error(`getAllDesktopShortcutInfo errData is errCode:${err.code}  message:${err.message}`);
226e41f4b71Sopenharmony_ci            });
227e41f4b71Sopenharmony_ci          } catch (error) {
228e41f4b71Sopenharmony_ci            let code = (error as BusinessError).code;
229e41f4b71Sopenharmony_ci            let message = (error as BusinessError).message;
230e41f4b71Sopenharmony_ci            console.error(`getAllDesktopShortcutInfo error is errCode:${code}  message:${message}`);
231e41f4b71Sopenharmony_ci          }
232e41f4b71Sopenharmony_ci        })
233e41f4b71Sopenharmony_ci      }
234e41f4b71Sopenharmony_ci    }
235e41f4b71Sopenharmony_ci  }
236e41f4b71Sopenharmony_ci}
237e41f4b71Sopenharmony_ci```
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci
241