1e41f4b71Sopenharmony_ci# @ohos.app.ability.dialogRequest (dialogRequest模块) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_cidialogRequest模块用于处理模态弹框的能力,包括获取RequestInfo(用于绑定模态弹框)、获取RequestCallback(用于设置结果)。 4e41f4b71Sopenharmony_ci模态弹框是指一个系统弹出框,其特点在于:该弹出框会拦截弹框之下的页面的鼠标、键盘、触屏等事件,销毁该弹框,才能操作下面的页面。 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci> **说明:** 7e41f4b71Sopenharmony_ci> 8e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 9e41f4b71Sopenharmony_ci> - 本模块接口可以在ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模态弹框,则可以使用本模块的接口获取请求方的RequestInfo、RequestCallback并返回请求结果。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## 导入模块 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```ts 14e41f4b71Sopenharmony_ciimport { dialogRequest } from '@kit.AbilityKit'; 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## dialogRequest.getRequestInfo 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_cigetRequestInfo(want: Want): RequestInfo 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci> **说明:** 22e41f4b71Sopenharmony_ci> 23e41f4b71Sopenharmony_ci> 该接口可以在ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模态弹框,则能从Want中获取请求方的RequestInfo。其他场景使用该接口,均无法获取返回值。 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci从Want中获取请求方的RequestInfo。 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci**参数:** 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 32e41f4b71Sopenharmony_ci| ---- | ------ | ---- | --------------------------- | 33e41f4b71Sopenharmony_ci| want | [Want](js-apis-app-ability-want.md) | 是 | 表示发起方请求弹框时传入的want信息。 | 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci**返回值:** 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci| 类型 | 说明 | 38e41f4b71Sopenharmony_ci| ------ | ------------------------ | 39e41f4b71Sopenharmony_ci| [RequestInfo](#requestinfo) | 请求方RequestInfo,用于绑定模态窗口。 | 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci**错误码**: 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 46e41f4b71Sopenharmony_ci| ------- | -------- | 47e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci**示例:** 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci```ts 52e41f4b71Sopenharmony_ciimport { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility { 55e41f4b71Sopenharmony_ci onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 56e41f4b71Sopenharmony_ci try { 57e41f4b71Sopenharmony_ci let requestInfo = dialogRequest.getRequestInfo(want); 58e41f4b71Sopenharmony_ci } catch (err) { 59e41f4b71Sopenharmony_ci console.error(`getRequestInfo err= ${JSON.stringify(err)}`); 60e41f4b71Sopenharmony_ci } 61e41f4b71Sopenharmony_ci } 62e41f4b71Sopenharmony_ci} 63e41f4b71Sopenharmony_ci``` 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci## dialogRequest.getRequestCallback 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_cigetRequestCallback(want: Want): RequestCallback 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci从Want中获取请求方的RequestCallback。 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci> **说明:** 72e41f4b71Sopenharmony_ci> 73e41f4b71Sopenharmony_ci> 该接口可以在ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模态弹框,则能从Want中获取请求方的RequestCallback。其他场景使用该接口,均无法获取返回值。 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**参数:** 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 80e41f4b71Sopenharmony_ci| ---- | ------ | ---- | --------------------------- | 81e41f4b71Sopenharmony_ci| want | [Want](js-apis-app-ability-want.md) | 是 | 表示发起方请求弹框时传入的want信息。 | 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci**返回值:** 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci| 类型 | 说明 | 86e41f4b71Sopenharmony_ci| ------ | ------------------------ | 87e41f4b71Sopenharmony_ci| [RequestCallback](#requestcallback) | 请求方RequestCallback,用于设置返回结果。 | 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci**错误码**: 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 94e41f4b71Sopenharmony_ci| ------- | -------- | 95e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci**示例:** 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci```ts 100e41f4b71Sopenharmony_ciimport { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility { 103e41f4b71Sopenharmony_ci onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 104e41f4b71Sopenharmony_ci try { 105e41f4b71Sopenharmony_ci let requestCallback = dialogRequest.getRequestCallback(want); 106e41f4b71Sopenharmony_ci } catch(err) { 107e41f4b71Sopenharmony_ci console.error(`getRequestInfo err= ${JSON.stringify(err)}`); 108e41f4b71Sopenharmony_ci } 109e41f4b71Sopenharmony_ci } 110e41f4b71Sopenharmony_ci} 111e41f4b71Sopenharmony_ci``` 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci## WindowRect<sup>10+</sup> 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci表示模态弹框的属性。 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在Stage模型下使用。 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 122e41f4b71Sopenharmony_ci| ---- | ------ | ---- | --------------------------- | 123e41f4b71Sopenharmony_ci| left | number | 是 | 弹框边框的左上角的X坐标。 | 124e41f4b71Sopenharmony_ci| top | number | 是 | 弹框边框的左上角的Y坐标。 | 125e41f4b71Sopenharmony_ci| width | number | 是 | 弹框的宽度。 | 126e41f4b71Sopenharmony_ci| height | number | 是 | 弹框的高度。 | 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci## RequestInfo 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci表示发起方请求信息,作为窗口绑定模态弹框的入参。 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在Stage模型下使用。 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 137e41f4b71Sopenharmony_ci| ------------ | ------------------| ------ | ---------------------- | 138e41f4b71Sopenharmony_ci| windowRect<sup>10+</sup> | [WindowRect](#windowrect10) | 否 | 表示模态弹框的位置属性。 | 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci**示例:** 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci```ts 143e41f4b71Sopenharmony_ciimport { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility { 146e41f4b71Sopenharmony_ci onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 147e41f4b71Sopenharmony_ci try { 148e41f4b71Sopenharmony_ci let requestInfo = dialogRequest.getRequestInfo(want); 149e41f4b71Sopenharmony_ci console.info(`getRequestInfo windowRect=, ${JSON.stringify(requestInfo.windowRect)}` ); 150e41f4b71Sopenharmony_ci } catch(err) { 151e41f4b71Sopenharmony_ci console.error(`getRequestInfo err= ${JSON.stringify(err)}`); 152e41f4b71Sopenharmony_ci } 153e41f4b71Sopenharmony_ci } 154e41f4b71Sopenharmony_ci} 155e41f4b71Sopenharmony_ci``` 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci## ResultCode 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci模态弹框请求结果码。 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 164e41f4b71Sopenharmony_ci| ------------ | ------------------ | ---------------------- | 165e41f4b71Sopenharmony_ci| RESULT_OK | 0 | 表示成功。 | 166e41f4b71Sopenharmony_ci| RESULT_CANCEL | 1 | 表示失败。 | 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_ci## RequestResult 169e41f4b71Sopenharmony_ci模态弹框请求结果,包含结果码ResultCode和请求结果ResultWant。 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci### 属性 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在Stage模型下使用。 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 178e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- | 179e41f4b71Sopenharmony_ci| result | [ResultCode](#resultcode) | 否 | 否 | 表示结果码。 | 180e41f4b71Sopenharmony_ci| want<sup>10+</sup> | [Want](js-apis-app-ability-want.md) | 否 | 是 | 表示Want类型信息,如ability名称,包名等。 | 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci## RequestCallback 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci用于设置模态弹框请求结果的callback接口。 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在Stage模型下使用。 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci### RequestCallback.setRequestResult 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_cisetRequestResult(result: RequestResult): void 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci设置请求结果 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在Stage模型下使用。 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci**参数:** 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 201e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 202e41f4b71Sopenharmony_ci| result | [RequestResult](#requestresult) | 是 | 模态弹框请求结果信息。 | 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci**错误码**: 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 209e41f4b71Sopenharmony_ci| ------- | -------- | 210e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci**示例:** 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci```ts 215e41f4b71Sopenharmony_ciimport { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility { 218e41f4b71Sopenharmony_ci onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 219e41f4b71Sopenharmony_ci try { 220e41f4b71Sopenharmony_ci let requestCallback = dialogRequest.getRequestCallback(want); 221e41f4b71Sopenharmony_ci let myResult: dialogRequest.RequestResult = { 222e41f4b71Sopenharmony_ci result : dialogRequest.ResultCode.RESULT_CANCEL, 223e41f4b71Sopenharmony_ci }; 224e41f4b71Sopenharmony_ci requestCallback.setRequestResult(myResult); 225e41f4b71Sopenharmony_ci } catch(err) { 226e41f4b71Sopenharmony_ci console.error(`getRequestInfo err= ${JSON.stringify(err)}`); 227e41f4b71Sopenharmony_ci } 228e41f4b71Sopenharmony_ci } 229e41f4b71Sopenharmony_ci} 230e41f4b71Sopenharmony_ci```