# @ohos.app.ability.dialogRequest (dialogRequest模å—) dialogRequest模å—用于处ç†æ¨¡æ€å¼¹æ¡†çš„能力,包括获å–RequestInfo(用于绑定模æ€å¼¹æ¡†ï¼‰ã€èŽ·å–RequestCallback(用于设置结果)。 模æ€å¼¹æ¡†æ˜¯æŒ‡ä¸€ä¸ªç³»ç»Ÿå¼¹å‡ºæ¡†ï¼Œå…¶ç‰¹ç‚¹åœ¨äºŽï¼šè¯¥å¼¹å‡ºæ¡†ä¼šæ‹¦æˆªå¼¹æ¡†ä¹‹ä¸‹çš„页é¢çš„é¼ æ ‡ã€é”®ç›˜ã€è§¦å±ç‰äº‹ä»¶ï¼Œé”€æ¯è¯¥å¼¹æ¡†ï¼Œæ‰èƒ½æ“作下é¢çš„页é¢ã€‚ > **说明:** > > - 本模å—首批接å£ä»ŽAPI version 9开始支æŒã€‚åŽç»ç‰ˆæœ¬çš„新增接å£ï¼Œé‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°æŽ¥å£çš„起始版本。 > - 本模å—接å£å¯ä»¥åœ¨ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模æ€å¼¹æ¡†ï¼Œåˆ™å¯ä»¥ä½¿ç”¨æœ¬æ¨¡å—的接å£èŽ·å–请求方的RequestInfoã€RequestCallback并返回请求结果。 ## å¯¼å…¥æ¨¡å— ```ts import { dialogRequest } from '@kit.AbilityKit'; ``` ## dialogRequest.getRequestInfo getRequestInfo(want: Want): RequestInfo > **说明:** > > 该接å£å¯ä»¥åœ¨ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模æ€å¼¹æ¡†ï¼Œåˆ™èƒ½ä»ŽWantä¸èŽ·å–请求方的RequestInfo。其他场景使用该接å£ï¼Œå‡æ— 法获å–返回值。 从Wantä¸èŽ·å–请求方的RequestInfo。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | ---- | ------ | ---- | --------------------------- | | want | [Want](js-apis-app-ability-want.md) | 是 | 表示å‘èµ·æ–¹è¯·æ±‚å¼¹æ¡†æ—¶ä¼ å…¥çš„wantä¿¡æ¯ã€‚ | **返回值:** | 类型 | 说明 | | ------ | ------------------------ | | [RequestInfo](#requestinfo) | 请求方RequestInfo,用于绑定模æ€çª—å£ã€‚ | **错误ç **: 以下错误ç 详细介ç»è¯·å‚考[通用错误ç ](../errorcode-universal.md)。 | 错误ç ID | é”™è¯¯ä¿¡æ¯ | | ------- | -------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | **示例:** ```ts import { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { try { let requestInfo = dialogRequest.getRequestInfo(want); } catch (err) { console.error(`getRequestInfo err= ${JSON.stringify(err)}`); } } } ``` ## dialogRequest.getRequestCallback getRequestCallback(want: Want): RequestCallback 从Wantä¸èŽ·å–请求方的RequestCallback。 > **说明:** > > 该接å£å¯ä»¥åœ¨ServiceExtensionAbility下使用,如果ServiceExtensionAbility实现了模æ€å¼¹æ¡†ï¼Œåˆ™èƒ½ä»ŽWantä¸èŽ·å–请求方的RequestCallback。其他场景使用该接å£ï¼Œå‡æ— 法获å–返回值。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | ---- | ------ | ---- | --------------------------- | | want | [Want](js-apis-app-ability-want.md) | 是 | 表示å‘èµ·æ–¹è¯·æ±‚å¼¹æ¡†æ—¶ä¼ å…¥çš„wantä¿¡æ¯ã€‚ | **返回值:** | 类型 | 说明 | | ------ | ------------------------ | | [RequestCallback](#requestcallback) | 请求方RequestCallback,用于设置返回结果。 | **错误ç **: 以下错误ç 详细介ç»è¯·å‚考[通用错误ç ](../errorcode-universal.md)。 | 错误ç ID | é”™è¯¯ä¿¡æ¯ | | ------- | -------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | **示例:** ```ts import { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { try { let requestCallback = dialogRequest.getRequestCallback(want); } catch(err) { console.error(`getRequestInfo err= ${JSON.stringify(err)}`); } } } ``` ## WindowRect<sup>10+</sup> 表示模æ€å¼¹æ¡†çš„属性。 **模型约æŸ**:æ¤æŽ¥å£ä»…å¯åœ¨Stage模型下使用。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | å称 | 类型 | å¿…å¡« | 说明 | | ---- | ------ | ---- | --------------------------- | | left | number | 是 | 弹框边框的左上角的Xåæ ‡ã€‚ | | top | number | 是 | 弹框边框的左上角的Yåæ ‡ã€‚ | | width | number | 是 | 弹框的宽度。 | | height | number | 是 | 弹框的高度。 | ## RequestInfo 表示å‘起方请求信æ¯ï¼Œä½œä¸ºçª—å£ç»‘定模æ€å¼¹æ¡†çš„å…¥å‚。 **模型约æŸ**:æ¤æŽ¥å£ä»…å¯åœ¨Stage模型下使用。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | å称 | 类型 | å¿…å¡« | 说明 | | ------------ | ------------------| ------ | ---------------------- | | windowRect<sup>10+</sup> | [WindowRect](#windowrect10) | å¦ | 表示模æ€å¼¹æ¡†çš„ä½ç½®å±žæ€§ã€‚ | **示例:** ```ts import { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { try { let requestInfo = dialogRequest.getRequestInfo(want); console.info(`getRequestInfo windowRect=, ${JSON.stringify(requestInfo.windowRect)}` ); } catch(err) { console.error(`getRequestInfo err= ${JSON.stringify(err)}`); } } } ``` ## ResultCode 模æ€å¼¹æ¡†è¯·æ±‚结果ç 。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | å称 | 值 | 说明 | | ------------ | ------------------ | ---------------------- | | RESULT_OK | 0 | 表示æˆåŠŸã€‚ | | RESULT_CANCEL | 1 | 表示失败。 | ## RequestResult 模æ€å¼¹æ¡†è¯·æ±‚结果,包å«ç»“æžœç ResultCode和请求结果ResultWant。 ### 属性 **模型约æŸ**:æ¤æŽ¥å£ä»…å¯åœ¨Stage模型下使用。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | å称 | 类型 | åªè¯» | å¯é€‰ | 说明 | | -------- | -------- | -------- | -------- | -------- | | result | [ResultCode](#resultcode) | å¦ | å¦ | 表示结果ç 。 | | want<sup>10+</sup> | [Want](js-apis-app-ability-want.md) | å¦ | 是 | 表示Want类型信æ¯ï¼Œå¦‚abilityå称,包åç‰ã€‚ | ## RequestCallback 用于设置模æ€å¼¹æ¡†è¯·æ±‚结果的callback接å£ã€‚ **模型约æŸ**:æ¤æŽ¥å£ä»…å¯åœ¨Stage模型下使用。 ### RequestCallback.setRequestResult setRequestResult(result: RequestResult): void 设置请求结果 **模型约æŸ**:æ¤æŽ¥å£ä»…å¯åœ¨Stage模型下使用。 **系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | result | [RequestResult](#requestresult) | 是 | 模æ€å¼¹æ¡†è¯·æ±‚结果信æ¯ã€‚ | **错误ç **: 以下错误ç 详细介ç»è¯·å‚考[通用错误ç ](../errorcode-universal.md)。 | 错误ç ID | é”™è¯¯ä¿¡æ¯ | | ------- | -------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | **示例:** ```ts import { AbilityConstant, UIAbility, Want, dialogRequest } from '@kit.AbilityKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { try { let requestCallback = dialogRequest.getRequestCallback(want); let myResult: dialogRequest.RequestResult = { result : dialogRequest.ResultCode.RESULT_CANCEL, }; requestCallback.setRequestResult(myResult); } catch(err) { console.error(`getRequestInfo err= ${JSON.stringify(err)}`); } } } ```