• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.dialogRequest (dialogRequest模块)
2
3dialogRequest模块用于处理模态弹框的能力,包括获取RequestInfo(用于绑定模态弹框)、获取RequestCallback(用于设置结果)。
4模态弹框是指一个系统弹出框,其特点在于:该弹出框会拦截弹框之下的页面的鼠标、键盘、触屏等事件,销毁该弹框,才能操作下面的页面。
5
6> **说明:**
7>
8>  - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9>  - 本模块接口在ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模态弹框,则可以使用本模块的接口获取请求方的RequestInfo、RequestCallback并返回请求结果。
10
11## 导入模块
12
13```js
14import dialogRequest from '@ohos.app.ability.dialogRequest';
15```
16
17## dialogRequest.getRequestInfo
18
19getRequestInfo(want: Want): RequestInfo
20
21从Want中获取请求方的RequestInfo。
22
23**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
24
25**参数:**
26
27| 名称 | 类型   | 必填 | 描述                        |
28| ---- | ------ | ---- | --------------------------- |
29| want  | [Want](js-apis-application-want.md) | 是   | 表示发起方请求弹框时传入的want信息。 |
30
31**返回值:**
32
33| 类型   | 说明                     |
34| ------ | ------------------------ |
35| [RequestInfo](#requestinfo) | 请求方RequestInfo,用于绑定模态窗口。 |
36
37**示例:**
38
39```ts
40   import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
41   import rpc from '@ohos.rpc';
42   import dialogRequest from '@ohos.app.ability.dialogRequest';
43
44   export default class ServiceExtAbility extends ServiceExtensionAbility {
45     onCreate(want) {
46       console.info(TAG, `onCreate, want: ${want.abilityName}`);
47     }
48
49     onRequest(want, startId) {
50       console.info(TAG, `onRequest, want: ${want.abilityName}`);
51       try {
52            var requestInfo = dialogRequest.getRequestInfo(want);
53        } catch(err) {
54            console.error('getRequestInfo err= ${JSON.stringify(err)}');
55        }
56     }
57
58     onConnect(want) {
59       console.info(TAG, `onConnect, want: ${want.abilityName}`);
60     }
61
62     onDisconnect(want) {
63       console.info(TAG, `onDisconnect, want: ${want.abilityName}`);
64     }
65
66     onDestroy() {
67       console.info(TAG, `onDestroy`);
68     }
69   }
70   ```
71
72## dialogRequest.getRequestCallback
73
74getRequestCallback(want: Want): RequestCallback
75
76从Want中获取请求方的RequestCallback。
77
78**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
79
80**参数:**
81
82| 名称 | 类型   | 必填 | 描述                        |
83| ---- | ------ | ---- | --------------------------- |
84| want  | [Want](js-apis-application-want.md) | 是   | 表示发起方请求弹框时传入的want信息。 |
85
86**返回值:**
87
88| 类型   | 说明                     |
89| ------ | ------------------------ |
90| [RequestCallback](#requestcallback) | 请求方RequestCallback,用于设置返回结果。 |
91
92**示例:**
93
94```ts
95   import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
96   import rpc from '@ohos.rpc';
97   import dialogRequest from '@ohos.app.ability.dialogRequest';
98
99   export default class ServiceExtAbility extends ServiceExtensionAbility {
100     onCreate(want) {
101       console.info(TAG, `onCreate, want: ${want.abilityName}`);
102     }
103
104     onRequest(want, startId) {
105       console.info(TAG, `onRequest, want: ${want.abilityName}`);
106       try {
107            var requestCallback = dialogRequest.getRequestCallback(want);
108        } catch(err) {
109            console.error('getRequestInfo err= ${JSON.stringify(err)}');
110        }
111     }
112
113     onConnect(want) {
114       console.info(TAG, `onConnect, want: ${want.abilityName}`);
115     }
116
117     onDisconnect(want) {
118       console.info(TAG, `onDisconnect, want: ${want.abilityName}`);
119     }
120
121     onDestroy() {
122       console.info(TAG, `onDestroy`);
123     }
124   }
125   ```
126
127## RequestInfo
128
129表示发起方请求信息,作为窗口绑定模态弹框的入参。
130**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
131
132**示例:**
133
134```ts
135   import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
136   import rpc from '@ohos.rpc';
137   import dialogRequest from '@ohos.app.ability.dialogRequest';
138   import window from '@ohos.window';
139
140   export default class ServiceExtAbility extends ServiceExtensionAbility {
141     onCreate(want) {
142       console.info(TAG, `onCreate, want: ${want.abilityName}`);
143     }
144
145     onRequest(want, startId) {
146       console.info(TAG, `onRequest, want: ${want.abilityName}`);
147       try {
148            var requestInfo = dialogRequest.getRequestInfo(want);
149            window.bindDialogTarget(requestInfo, () => {
150                console.info('Dialog Window Need Destroy.');
151            }, (err) => {
152                if (err.code) {
153                    console.error('Failed to bind dialog target. Cause: ${JSON.stringify(err)}');
154                    return;
155                }
156                console.info('Succeeded in binding dialog target.');
157            });
158        } catch(err) {
159            console.error('getRequestInfo err= ${JSON.stringify(err)}');
160        }
161     }
162
163     onConnect(want) {
164       console.info(TAG, `onConnect, want: ${want.abilityName}`);
165     }
166
167     onDisconnect(want) {
168       console.info(TAG, `onDisconnect, want: ${want.abilityName}`);
169     }
170
171     onDestroy() {
172       console.info(TAG, `onDestroy`);
173     }
174   }
175   ```
176
177## ResultCode
178
179模态弹框请求结果码。
180
181**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore182
183| 名称      | 值          | 说明     |
184| ------------ | ------------------ | ---------------------- |
185| RESULT_OK            | 0          | 表示成功。          |
186| RESULT_CANCEL        | 1          | 表示失败。          |
187
188## RequestResult
189模态弹框请求结果,当前只包含结果码,即RequestResult只当前只有ResultCode这一个成员。
190
191## 属性
192
193**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
194
195| 名称 | 类型 | 可读 | 可写 | 说明 |
196| -------- | -------- | -------- | -------- | -------- |
197| result | [ResultCode](#resultcode) | 是 | 是 | 表示结果码。 |
198
199## RequestCallback
200
201用于设置模态弹框请求结果的callback接口。
202
203### RequestCallback.setRequestResult
204
205setRequestResult(result: RequestResult): void;
206
207设置请求结果
208
209**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
210
211**参数:**
212
213| 参数名 | 类型 | 必填 | 说明 |
214| -------- | -------- | -------- | -------- |
215| result | [RequestResult](#requestresult) | 是 | 模态弹框请求结果信息。 |
216
217**错误码:**
218
219| 错误码ID | 错误信息 |
220| ------- | -------------------------------- |
221| 401 | If the input parameter is not valid parameter. |
222
223以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。
224
225**示例:**
226
227```ts
228   import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
229   import rpc from '@ohos.rpc';
230   import dialogRequest from '@ohos.app.ability.dialogRequest';
231
232   export default class ServiceExtAbility extends ServiceExtensionAbility {
233     onCreate(want) {
234       console.info(TAG, `onCreate, want: ${want.abilityName}`);
235     }
236
237     onRequest(want, startId) {
238       console.info(TAG, `onRequest, want: ${want.abilityName}`);
239       try {
240            var requestCallback = dialogRequest.getRequestCallback(want);
241            let myResult = {
242                result : dialogRequest.ResultCode.RESULT_CANCEL,
243            };
244            requestCallback.setRequestResult(myResult);
245        } catch(err) {
246            console.error('getRequestInfo err= ${JSON.stringify(err)}');
247        }
248     }
249
250     onConnect(want) {
251       console.info(TAG, `onConnect, want: ${want.abilityName}`);
252     }
253
254     onDisconnect(want) {
255       console.info(TAG, `onDisconnect, want: ${want.abilityName}`);
256     }
257
258     onDestroy() {
259       console.info(TAG, `onDestroy`);
260     }
261   }
262  ```