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.AbilityCore。 182 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 ```