• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.kioskManager (Kiosk模式管理)
2<!--Kit: Ability Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @zhu-feimo-->
5<!--Designer: @ccllee1-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @huipeizi-->
8
9KioskManager模块提供Kiosk模式管理能力,包括系统进入/退出Kiosk模式操作。
10
11Kiosk模式是一种特殊的设备锁定模式,可以确保设备界面只服务于特定的交互场景。在这种模式下,用户只能使用特定的应用。例如,在银行ATM机上,用户只能通过ATM软件进行交易操作,而不能退出该软件或切换到其他应用。
12
13> **说明:**
14>
15> - 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
16> - 本模块接口仅可在Stage模型下使用。
17> - 本模块接口仅适用于通过[setAllowedKioskApps接口](../apis-mdm-kit/js-apis-enterprise-applicationManager.md#applicationmanagersetkioskfeatures20)配置的支持Kiosk模式的应用。
18
19## 导入模块
20
21```ts
22import { kioskManager } from '@kit.AbilityKit';
23```
24
25## kioskManager.enterKioskMode
26
27enterKioskMode(context: UIAbilityContext): Promise&lt;void&gt;
28
29进入Kiosk模式。使用Promise异步回调。
30
31**系统能力**: SystemCapability.Ability.AbilityRuntime.Core
32
33**参数**:
34
35| 参数名 | 类型 | 必填 | 说明 |
36|--------|------|------|------|
37| context | [UIAbilityContext](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md) | 是 | 当前UIAbility的上下文。 |
38
39**返回值:**
40
41| 类型 | 说明 |
42|------|------|
43| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
44
45**错误码**:
46
47以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
48
49| 错误码ID | 错误信息 |
50|---------|---------|
51| 801 | Capability not supported. |
52| 16000050 | Internal error. |
53| 16000110 | Current application is not in kiosk app list, can not enter kiosk mode. |
54| 16000111 | System is already in kiosk mode, can not enter again. |
55| 16000113 | Current ability is not in foreground. |
56
57**示例**:
58
59```ts
60import { common, kioskManager } from '@kit.AbilityKit';
61import { hilog } from '@kit.PerformanceAnalysisKit';
62import { BusinessError } from '@kit.BasicServicesKit';
63
64@Entry
65@Component
66struct Index {
67  private uiAbilityContext: common.UIAbilityContext | undefined =
68    this.getUIContext().getHostContext() as common.UIAbilityContext;
69
70  build() {
71    Column() {
72      Button('enterKioskMode').margin({ top: 30 })
73        .onClick(() => {
74          kioskManager.enterKioskMode(this.uiAbilityContext)
75            .then(() => {
76              hilog.info(0x0000, 'testTag', '%{public}s', 'enterKioskMode success');
77            })
78            .catch((error: BusinessError) => {
79              hilog.error(0x0000, 'testTag', '%{public}s', `enterKioskMode failed:${JSON.stringify(error)}`);
80            });
81        })
82    }
83    .height('100%')
84    .width('100%')
85  }
86}
87```
88
89## kioskManager.exitKioskMode
90
91exitKioskMode(context: UIAbilityContext): Promise&lt;void&gt;
92
93退出Kiosk模式。使用Promise异步回调。
94
95该接口仅对已进入Kiosk模式的应用生效。
96
97**系统能力**: SystemCapability.Ability.AbilityRuntime.Core
98
99**参数**:
100
101| 参数名 | 类型 | 必填 | 说明 |
102|--------|------|------|------|
103| context | [UIAbilityContext](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md) | 是 | 当前UIAbility的上下文。 |
104
105**返回值:**
106
107| 类型 | 说明 |
108|------|------|
109| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
110
111**错误码**:
112
113以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
114
115| 错误码ID | 错误信息 |
116|---------|---------|
117| 801 | Capability not supported. |
118| 16000050 | Internal error. |
119| 16000110 | Current application is not in kiosk app list, can not exit kiosk mode. |
120| 16000112 | Current application is not in kiosk mode, can not exit. |
121
122**示例**:
123
124```ts
125import { common, kioskManager } from '@kit.AbilityKit';
126import { hilog } from '@kit.PerformanceAnalysisKit';
127import { BusinessError } from '@kit.BasicServicesKit';
128
129@Entry
130@Component
131struct Index {
132  private uiAbilityContext: common.UIAbilityContext | undefined =
133    this.getUIContext().getHostContext() as common.UIAbilityContext;
134
135  build() {
136    Column() {
137      Button('exitKioskMode').margin({ top: 10 })
138        .onClick(() => {
139          kioskManager.exitKioskMode(this.uiAbilityContext)
140            .then(() => {
141              hilog.info(0x0000, 'testTag', '%{public}s', 'exitKioskMode success');
142            })
143            .catch((error: BusinessError) => {
144              hilog.error(0x0000, 'testTag', '%{public}s', `exitKioskMode failed:${JSON.stringify(error)}`);
145            });
146        })
147    }
148    .height('100%')
149    .width('100%')
150  }
151}
152```
153
154## KioskStatus<sup>20+</sup>
155
156type KioskStatus = _KioskStatus
157
158Kiosk状态信息,包括系统是否处于Kiosk模式以及该模式下的应用信息。
159
160**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
161
162| 类型 | 说明 |
163| --- | --- |
164| [_KioskStatus](js-apis-application-KioskStatus.md#kioskstatus) | 表示Kiosk状态信息,包括系统是否处于Kiosk模式以及该模式下的应用信息。 |
165