1# @ohos.promptAction (弹窗) 2 3创建并显示文本提示框、对话框和操作菜单。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> 该模块不支持在[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)的文件声明处使用,即不能在UIAbility的生命周期中调用,需要在创建组件实例后使用。 10> 11> 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见[UIContext](js-apis-arkui-UIContext.md#uicontext)说明。建议在<!--Del-->除[ServiceExtension](../../application-models/serviceextensionability.md)等<!--DelEnd-->无UI界面的场景外,均使用UIContext中的弹窗方法。 12> 13> 从API version 10开始,可以通过使用[UIContext](js-apis-arkui-UIContext.md#uicontext)中的[getPromptAction](js-apis-arkui-UIContext.md#getpromptaction)方法获取当前UI上下文关联的[PromptAction](js-apis-arkui-UIContext.md#promptaction)对象。 14 15## 导入模块 16 17```ts 18import { promptAction } from '@kit.ArkUI'; 19``` 20 21## promptAction.showToast 22 23showToast(options: ShowToastOptions): void 24 25创建并显示文本提示框。 26 27**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 28 29**系统能力:** SystemCapability.ArkUI.ArkUI.Full 30 31**参数:** 32 33| 参数名 | 类型 | 必填 | 说明 | 34| ------- | ------------------------------------- | ---- | ------- | 35| options | [ShowToastOptions](#showtoastoptions) | 是 | 文本弹窗选项。 | 36 37**错误码:** 38 39以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 40 41| 错误码ID | 错误信息 | 42| --------- | ------- | 43| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 44| 100001 | Internal error. | 45 46**示例:** 47 48```ts 49import { promptAction } from '@kit.ArkUI' 50import { BusinessError } from '@kit.BasicServicesKit'; 51 52@Entry 53@Component 54struct toastExample { 55 build() { 56 Column() { 57 Button('Show toast').fontSize(20) 58 .onClick(() => { 59 try { 60 promptAction.showToast({ 61 message: 'Hello World', 62 duration: 2000 63 }); 64 } catch (error) { 65 let message = (error as BusinessError).message 66 let code = (error as BusinessError).code 67 console.error(`showToast args error code is ${code}, message is ${message}`); 68 }; 69 }) 70 }.height('100%').width('100%').justifyContent(FlexAlign.Center) 71 } 72} 73``` 74API version 11及之前Toast样式。 75 76 77 78API version 12及之后Toast样式。 79 80 81 82## promptAction.showDialog 83 84showDialog(options: ShowDialogOptions): Promise<ShowDialogSuccessResponse> 85 86创建并显示对话框,对话框响应后异步返回结果。 87 88**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 89 90**系统能力:** SystemCapability.ArkUI.ArkUI.Full 91 92**参数:** 93 94| 参数名 | 类型 | 必填 | 说明 | 95| ------- | --------------------------------------- | ---- | ------ | 96| options | [ShowDialogOptions](#showdialogoptions) | 是 | 对话框选项。 | 97 98**返回值:** 99 100| 类型 | 说明 | 101| ---------------------------------------- | -------- | 102| Promise<[ShowDialogSuccessResponse](#showdialogsuccessresponse)> | 对话框响应结果。 | 103 104**错误码:** 105 106以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 107 108| 错误码ID | 错误信息 | 109| --------- | ------- | 110| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 111| 100001 | Internal error. | 112 113**示例:** 114 115```ts 116import { promptAction } from '@kit.ArkUI' 117 118promptAction.showDialog({ 119 title: 'Title Info', 120 message: 'Message Info', 121 buttons: [ 122 { 123 text: 'button1', 124 color: '#000000' 125 }, 126 { 127 text: 'button2', 128 color: '#000000' 129 } 130 ], 131}) 132 .then(data => { 133 console.info('showDialog success, click button: ' + data.index); 134 }) 135 .catch((err: Error) => { 136 console.info('showDialog error: ' + err); 137 }) 138``` 139 140 141 142## promptAction.showDialog 143 144showDialog(options: ShowDialogOptions, callback: AsyncCallback<ShowDialogSuccessResponse>):void 145 146创建并显示对话框,对话框响应结果异步返回。 147 148**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 149 150**系统能力:** SystemCapability.ArkUI.ArkUI.Full 151 152**参数:** 153 154| 参数名 | 类型 | 必填 | 说明 | 155| -------- | ---------------------------------------- | ---- | ------------ | 156| options | [ShowDialogOptions](#showdialogoptions) | 是 | 页面显示对话框信息描述。 | 157| callback | AsyncCallback<[ShowDialogSuccessResponse](#showdialogsuccessresponse)> | 是 | 对话框响应结果回调。 | 158 159**错误码:** 160 161以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 162 163| 错误码ID | 错误信息 | 164| --------- | ------- | 165| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 166| 100001 | Internal error. | 167 168**示例:** 169 170```ts 171import { promptAction } from '@kit.ArkUI'; 172import { BusinessError } from '@kit.BasicServicesKit'; 173 174try { 175 promptAction.showDialog({ 176 title: 'showDialog Title Info', 177 message: 'Message Info', 178 buttons: [ 179 { 180 text: 'button1', 181 color: '#000000' 182 }, 183 { 184 text: 'button2', 185 color: '#000000' 186 } 187 ] 188 }, (err, data) => { 189 if (err) { 190 console.info('showDialog err: ' + err); 191 return; 192 } 193 console.info('showDialog success callback, click button: ' + data.index); 194 }); 195} catch (error) { 196 let message = (error as BusinessError).message 197 let code = (error as BusinessError).code 198 console.error(`showDialog args error code is ${code}, message is ${message}`); 199}; 200``` 201 202 203 204当弹窗的showInSubWindow属性为true时,弹窗可显示在窗口外。 205 206```ts 207import { promptAction } from '@kit.ArkUI'; 208import { BusinessError } from '@kit.BasicServicesKit'; 209 210try { 211 promptAction.showDialog({ 212 title: 'showDialog Title Info', 213 message: 'Message Info', 214 isModal: true, 215 showInSubWindow: true, 216 buttons: [ 217 { 218 text: 'button1', 219 color: '#000000' 220 }, 221 { 222 text: 'button2', 223 color: '#000000' 224 } 225 ] 226 }, (err, data) => { 227 if (err) { 228 console.info('showDialog err: ' + err); 229 return; 230 } 231 console.info('showDialog success callback, click button: ' + data.index); 232 }); 233} catch (error) { 234 let message = (error as BusinessError).message 235 let code = (error as BusinessError).code 236 console.error(`showDialog args error code is ${code}, message is ${message}`); 237}; 238``` 239 240 241 242 243 244## promptAction.showActionMenu 245 246showActionMenu(options: ActionMenuOptions, callback: AsyncCallback<ActionMenuSuccessResponse>):void 247 248创建并显示操作菜单,菜单响应结果异步返回。 249 250**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 251 252**系统能力:** SystemCapability.ArkUI.ArkUI.Full。 253 254**参数:** 255 256| 参数名 | 类型 | 必填 | 说明 | 257| -------- | ---------------------------------------- | ---- | --------- | 258| options | [ActionMenuOptions](#actionmenuoptions) | 是 | 操作菜单选项。 | 259| callback | AsyncCallback<[ActionMenuSuccessResponse](#actionmenusuccessresponse)> | 是 | 菜单响应结果回调。 | 260 261**错误码:** 262 263以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 264 265| 错误码ID | 错误信息 | 266| --------- | ------- | 267| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 268| 100001 | Internal error. | 269 270**示例:** 271 272```ts 273import { promptAction } from '@kit.ArkUI'; 274import { BusinessError } from '@kit.BasicServicesKit'; 275 276try { 277 promptAction.showActionMenu({ 278 title: 'Title Info', 279 buttons: [ 280 { 281 text: 'item1', 282 color: '#666666' 283 }, 284 { 285 text: 'item2', 286 color: '#000000' 287 }, 288 ] 289 }, (err, data) => { 290 if (err) { 291 console.info('showActionMenu err: ' + err); 292 return; 293 } 294 console.info('showActionMenu success callback, click button: ' + data.index); 295 }) 296} catch (error) { 297 let message = (error as BusinessError).message 298 let code = (error as BusinessError).code 299 console.error(`showActionMenu args error code is ${code}, message is ${message}`); 300}; 301``` 302 303 304 305## promptAction.showActionMenu 306 307showActionMenu(options: ActionMenuOptions): Promise<ActionMenuSuccessResponse> 308 309创建并显示操作菜单,菜单响应后异步返回结果。 310 311**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 312 313**系统能力:** SystemCapability.ArkUI.ArkUI.Full 314 315**参数:** 316 317| 参数名 | 类型 | 必填 | 说明 | 318| ------- | --------------------------------------- | ---- | ------- | 319| options | [ActionMenuOptions](#actionmenuoptions) | 是 | 操作菜单选项。 | 320 321**返回值:** 322 323| 类型 | 说明 | 324| ---------------------------------------- | ------- | 325| Promise<[ActionMenuSuccessResponse](#actionmenusuccessresponse)> | 菜单响应结果。 | 326 327**错误码:** 328 329以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 330 331| 错误码ID | 错误信息 | 332| --------- | ------- | 333| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 334| 100001 | Internal error. | 335 336**示例:** 337 338```ts 339import { promptAction } from '@kit.ArkUI'; 340 341promptAction.showActionMenu({ 342 title: 'showActionMenu Title Info', 343 buttons: [ 344 { 345 text: 'item1', 346 color: '#666666' 347 }, 348 { 349 text: 'item2', 350 color: '#000000' 351 }, 352 ] 353}) 354 .then(data => { 355 console.info('showActionMenu success, click button: ' + data.index); 356 }) 357 .catch((err: Error) => { 358 console.info('showActionMenu error: ' + err); 359 }) 360``` 361 362 363 364## promptAction.openCustomDialog<sup>11+</sup> 365 366openCustomDialog(options: CustomDialogOptions): Promise<number> 367 368打开自定义弹窗。 369 370<!--Del-->不支持在ServiceExtension中使用。<!--DelEnd--> 371 372暂不支持isModal = true与showInSubWindow = true同时使用。 373 374弹窗宽度在设备竖屏时默认为 所在窗口宽度 - 左右margin(16vp,设备为2in1时为40vp),最大默认宽度为400vp。 375 376**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 377 378**系统能力:** SystemCapability.ArkUI.ArkUI.Full 379 380**参数:** 381 382| 参数名 | 类型 | 必填 | 说明 | 383| ------- | --------------------------------------------- | ---- | ------------------ | 384| options | [CustomDialogOptions](#customdialogoptions11) | 是 | 自定义弹窗的内容。 | 385 386**返回值:** 387 388| 类型 | 说明 | 389| --------------------- | ------------------------------------- | 390| Promise<number> | 返回供closeCustomDialog使用的对话框id。 | 391 392**错误码:** 393 394以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 395 396| 错误码ID | 错误信息 | 397| -------- | ---------------------------------- | 398| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 399| 100001 | Internal error. | 400 401**示例:** 402 403```ts 404import { promptAction } from '@kit.ArkUI' 405import { BusinessError } from '@kit.BasicServicesKit' 406 407@Entry 408@Component 409struct Index { 410 private customDialogComponentId: number = 0 411 412 @Builder 413 customDialogComponent() { 414 Column() { 415 Text('弹窗').fontSize(30) 416 Row({ space: 50 }) { 417 Button("确认").onClick(() => { 418 try { 419 promptAction.closeCustomDialog(this.customDialogComponentId) 420 } catch (error) { 421 let message = (error as BusinessError).message; 422 let code = (error as BusinessError).code; 423 console.error(`closeCustomDialog error code is ${code}, message is ${message}`); 424 } 425 }) 426 Button("取消").onClick(() => { 427 try { 428 promptAction.closeCustomDialog(this.customDialogComponentId) 429 } catch (error) { 430 let message = (error as BusinessError).message; 431 let code = (error as BusinessError).code; 432 console.error(`closeCustomDialog error code is ${code}, message is ${message}`); 433 } 434 }) 435 } 436 }.height(200).padding(5).justifyContent(FlexAlign.SpaceBetween) 437 } 438 439 build() { 440 Row() { 441 Column({ space: 20 }) { 442 Text('组件内弹窗') 443 .fontSize(30) 444 .onClick(() => { 445 promptAction.openCustomDialog({ 446 builder: () => { 447 this.customDialogComponent() 448 }, 449 onWillDismiss: (dismissDialogAction: DismissDialogAction) => { 450 console.info("reason" + JSON.stringify(dismissDialogAction.reason)) 451 console.log("dialog onWillDismiss") 452 if (dismissDialogAction.reason == DismissReason.PRESS_BACK) { 453 dismissDialogAction.dismiss() 454 } 455 if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) { 456 dismissDialogAction.dismiss() 457 } 458 } 459 }).then((dialogId: number) => { 460 this.customDialogComponentId = dialogId 461 }) 462 .catch((error: BusinessError) => { 463 console.error(`openCustomDialog error code is ${error.code}, message is ${error.message}`) 464 }) 465 }) 466 } 467 .width('100%') 468 } 469 .height('100%') 470 } 471} 472 473``` 474该示例定义了弹窗样式,如宽度、高度、背景色、阴影等等。 475```ts 476import { promptAction, LevelMode, ImmersiveMode } from '@kit.ArkUI' 477 478let customDialogId: number = 0 479 480@Builder 481function customDialogBuilder() { 482 Column() { 483 Text('Custom dialog Message').fontSize(10) 484 Row() { 485 Button("确认").onClick(() => { 486 promptAction.closeCustomDialog(customDialogId) 487 }) 488 Blank().width(50) 489 Button("取消").onClick(() => { 490 promptAction.closeCustomDialog(customDialogId) 491 }) 492 } 493 } 494} 495 496@Entry 497@Component 498struct Index { 499 @State message: string = 'Hello World' 500 501 @Builder 502 customDialogComponent() { 503 customDialogBuilder() 504 } 505 506 build() { 507 Row() { 508 Column() { 509 Text(this.message).id("test_text") 510 .fontSize(50) 511 .fontWeight(FontWeight.Bold) 512 .onClick(() => { 513 const node: FrameNode | null = this.getUIContext().getFrameNodeById("test_text") || null; 514 promptAction.openCustomDialog({ 515 builder: () => { 516 this.customDialogComponent() 517 }, 518 keyboardAvoidMode: KeyboardAvoidMode.NONE, 519 showInSubWindow: false, 520 offset: { dx: 5, dy: 5 }, 521 backgroundColor: 0xd9ffffff, 522 cornerRadius: 20, 523 width: '80%', 524 height: 200, 525 borderWidth: 1, 526 borderStyle: BorderStyle.Dashed, //使用borderStyle属性,需要和borderWidth属性一起使用 527 borderColor: Color.Blue, //使用borderColor属性,需要和borderWidth属性一起使用 528 shadow: ({ 529 radius: 20, 530 color: Color.Grey, 531 offsetX: 50, 532 offsetY: 0 533 }), 534 levelMode: LevelMode.EMBEDDED, 535 levelUniqueId: node?.getUniqueId(), 536 immersiveMode: ImmersiveMode.DEFAULT, 537 }).then((dialogId: number) => { 538 customDialogId = dialogId 539 }) 540 }) 541 } 542 .width('100%') 543 } 544 .height('100%') 545 } 546} 547``` 548 549 550该示例实现了一个页面内的弹窗。 551```ts 552// Index.ets 553import { promptAction, LevelMode, ImmersiveMode, router } from '@kit.ArkUI' 554 555let customDialogId: number = 0 556 557@Builder 558function customDialogBuilder() { 559 Column() { 560 Text('Custom dialog Message').fontSize(10).height(100) 561 Row() { 562 Button("Next").onClick(() => { 563 router.pushUrl({url: 'pages/Next'}) 564 }) 565 Blank().width(50) 566 Button("Close").onClick(() => { 567 promptAction.closeCustomDialog(customDialogId) 568 }) 569 } 570 }.padding(20) 571} 572 573@Entry 574@Component 575struct Index { 576 @State message: string = 'Hello World' 577 578 @Builder 579 customDialogComponent() { 580 customDialogBuilder() 581 } 582 583 build() { 584 Row() { 585 Column() { 586 Text(this.message).id("test_text") 587 .fontSize(50) 588 .fontWeight(FontWeight.Bold) 589 .onClick(() => { 590 const node: FrameNode | null = this.getUIContext().getFrameNodeById("test_text") || null; 591 promptAction.openCustomDialog({ 592 builder: () => { 593 this.customDialogComponent() 594 }, 595 levelMode: LevelMode.EMBEDDED, 596 levelUniqueId: node?.getUniqueId(), 597 immersiveMode: ImmersiveMode.DEFAULT, 598 }).then((dialogId: number) => { 599 customDialogId = dialogId 600 }) 601 }) 602 } 603 .width('100%') 604 } 605 .height('100%') 606 } 607} 608``` 609```ts 610// Next.ets 611import { router } from '@kit.ArkUI' 612 613@Entry 614@Component 615struct Next { 616 @State message: string = 'Back' 617 618 build() { 619 Row() { 620 Column() { 621 Button(this.message) 622 .fontSize(50) 623 .fontWeight(FontWeight.Bold) 624 .onClick(() => { 625 router.back() 626 }) 627 } 628 .width('100%') 629 } 630 .height('100%') 631 } 632} 633``` 634 635 636## promptAction.closeCustomDialog<sup>11+</sup> 637 638closeCustomDialog(dialogId: number): void 639 640关闭自定义弹窗。 641 642**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 643 644**系统能力:** SystemCapability.ArkUI.ArkUI.Full 645 646**参数:** 647 648| 参数名 | 类型 | 必填 | 说明 | 649| -------- | ------ | ---- | -------------------------------- | 650| dialogId | number | 是 | openCustomDialog返回的对话框id。 | 651 652**错误码:** 653 654以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.promptAction(弹窗)](errorcode-promptAction.md)错误码。 655 656| 错误码ID | 错误信息 | 657| -------- | ---------------------------------- | 658| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameters types; 3. Parameter verification failed. | 659| 100001 | Internal error. | 660 661**示例:** 662 663示例请看[promptAction.openCustomDialog](#promptactionopencustomdialog11)的示例。 664 665## ShowToastOptions 666 667文本提示框的选项。 668 669**系统能力:** SystemCapability.ArkUI.ArkUI.Full 670 671| 名称 | 类型 | 必填 | 说明 | 672| ----------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 673| message | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 是 | 显示的文本信息。<br>**说明:** <br/>默认字体为'Harmony Sans',不支持设置其他字体。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 674| duration | number | 否 | 默认值1500ms,取值区间:1500ms-10000ms。若小于1500ms则取默认值,若大于10000ms则取上限值10000ms。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 675| bottom | string \| number | 否 | 设置弹窗底部边框距离导航条的高度,ToastShowMode.TOP_MOST模式下,软键盘拉起时,如果bottom值过小,toast要被软键盘遮挡时,会自动避让至距离软键盘80vp处。ToastShowMode.DEFAULT模式下,软键盘拉起时,会上移软键盘的高度。<br/>默认值:80vp<br/>**说明:** <br/>当底部没有导航条时,bottom为设置弹窗底部边框距离窗口底部的高度。<br/>设置对齐方式alignment后,bottom不生效。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 676| showMode<sup>11+</sup> | [ToastShowMode](#toastshowmode11) | 否 | 设置弹窗是否显示在应用之上。<br>默认值:ToastShowMode.DEFAULT,默认显示在应用内。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 677| alignment<sup>12+</sup> | [Alignment](arkui-ts/ts-appendix-enums.md#alignment) | 否 | 对齐方式。<br/>默认值:undefined,默认底部偏上位置。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 678| offset<sup>12+</sup> | [Offset](arkui-ts/ts-types.md#offset) | 否 | 在对齐方式上的偏移。<br/>默认值:{ dx: 0, dy: 0 },默认没有偏移。<br/>**说明:** <br/>只支持设置px类型的数值,如需设置vp,可以将vp改成px传入。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 679| backgroundColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 文本提示框背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 680| textColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 文本提示框文本颜色。<br/>默认值:Color.Black<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 681| backgroundBlurStyle<sup>12+</sup> | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9) | 否 | 文本提示框背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 682| shadow<sup>12+</sup> | [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明) \| [ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 否 | 文本提示框背板阴影。<br/>默认值:ShadowStyle.OUTER_DEFAULT_MD<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 683| enableHoverMode<sup>14+</sup> | boolean | 否 | 是否响应悬停态。<br/>默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 | 684| hoverModeArea<sup>14+</sup> | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14) | 否 | 响应悬停态时,弹窗的显示区域。<br/>默认值:HoverModeAreaType.BOTTOM_SCREEN,默认显示在下半屏。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 | 685 686## ToastShowMode<sup>11+</sup> 687 688设置弹窗显示模式,默认显示在应用内,支持显示在应用之上。 689 690**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 691 692**系统能力:** SystemCapability.ArkUI.ArkUI.Full 693 694| 名称 | 值 | 说明 | 695| -------- | ---- | ---------------------- | 696| DEFAULT | 0 | Toast 显示在应用内。 | 697| TOP_MOST | 1 | Toast 显示在应用之上。 | 698 699## ShowDialogOptions 700 701对话框的选项。 702 703**系统能力:** SystemCapability.ArkUI.ArkUI.Full 704 705| 名称 | 类型 | 必填 | 说明 | 706| --------------------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 707| title | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 否 | 标题文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 708| message | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 否 | 内容文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 709| buttons | Array<[Button](#button)> | 否 | 对话框中按钮的数组,结构为:{text:'button', color: '\#666666'},支持大于1个按钮。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 710| alignment<sup>10+</sup> | [DialogAlignment](arkui-ts/ts-methods-alert-dialog-box.md#dialogalignment枚举说明) | 否 | 弹窗在竖直方向上的对齐方式。<br/>默认值:DialogAlignment.Default<br/>**说明**:<br/>若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 711| offset<sup>10+</sup> | [Offset](arkui-ts/ts-types.md#offset) | 否 | 弹窗相对alignment所在位置的偏移量。<br/>默认值:{ dx: 0 , dy: 0 }<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 712| maskRect<sup>10+</sup> | [Rectangle](arkui-ts/ts-methods-alert-dialog-box.md#rectangle8类型说明) | 否 | 弹窗遮蔽层区域,在遮蔽层区域内的事件不透传,在遮蔽层区域外的事件透传。<br/>默认值:{ x: 0, y: 0, width: '100%', height: '100%' } <br/>**说明:**<br/>showInSubWindow为true时,maskRect不生效。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 713| showInSubWindow<sup>11+</sup> | boolean | 否 | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,弹窗显示在应用内,而非独立子窗口。<br/>**说明**:showInSubWindow为true的弹窗无法触发显示另一个showInSubWindow为true的弹窗。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 714| isModal<sup>11+</sup> | boolean | 否 | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 715| backgroundColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 弹窗背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 716| backgroundBlurStyle<sup>12+</sup> | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9) | 否 | 弹窗背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 717| shadow<sup>12+</sup> | [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明) \| [ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 否 | 设置弹窗背板的阴影。<br /> 当设备为2in1时,默认场景下获焦阴影值为ShadowStyle.OUTER_FLOATING_MD,失焦为ShadowStyle.OUTER_FLOATING_SM<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 718| enableHoverMode<sup>14+</sup> | boolean | 否 | 是否响应悬停态。<br />默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 | 719| hoverModeArea<sup>14+</sup> | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14) | 否 | 悬停态下弹窗默认展示区域。<br />默认值:HoverModeAreaType.BOTTOM_SCREEN<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 | 720| levelMode<sup>15+</sup> | [LevelMode](#levelmode15枚举说明) | 否 | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 721| levelUniqueId<sup>15+</sup> | number | 否 | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 722| immersiveMode<sup>15+</sup> | [ImmersiveMode](#immersivemode15枚举说明) | 否 | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 723 724## ShowDialogSuccessResponse 725 726对话框的响应结果。 727 728**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 729 730**系统能力:** SystemCapability.ArkUI.ArkUI.Full 731 732| 名称 | 类型 | 必填 | 说明 | 733| ----- | ------ | ---- | ------------------------------- | 734| index | number | 是 | 选中按钮在buttons数组中的索引。 | 735 736## ActionMenuOptions 737 738操作菜单的选项。 739 740**系统能力:** SystemCapability.ArkUI.ArkUI.Full 741 742| 名称 | 类型 | 必填 | 说明 | 743| ----------------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 744| title | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 否 | 标题文本。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 745| buttons | [[Button](#button),[Button](#button)?,[Button](#button)?,[Button](#button)?,[Button](#button)?,[Button](#button)?] | 是 | 菜单中菜单项按钮的数组,结构为:{text:'button', color: '\#666666'},支持1-6个按钮。按钮数量大于6个时,仅显示前6个按钮,之后的按钮不显示。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 746| showInSubWindow<sup>11+</sup> | boolean | 否 | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,在子窗口不显示弹窗。<br/>**说明**:<br/> - showInSubWindow为true的弹窗无法触发显示另一个showInSubWindow为true的弹窗。 <br/> - 若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 747| isModal<sup>11+</sup> | boolean | 否 | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 748| levelMode<sup>15+</sup> | [LevelMode](#levelmode15枚举说明) | 否 | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 749| levelUniqueId<sup>15+</sup> | number | 否 | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 750| immersiveMode<sup>15+</sup> | [ImmersiveMode](#immersivemode15枚举说明) | 否 | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 751 752## ActionMenuSuccessResponse 753 754操作菜单的响应结果。 755 756**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 757 758**系统能力:** SystemCapability.ArkUI.ArkUI.Full 759 760| 名称 | 类型 | 必填 | 说明 | 761| ----- | ------ | ---- | ---------------------------------------- | 762| index | number | 是 | 选中按钮在buttons数组中的索引,从0开始。 | 763 764## CustomDialogOptions<sup>11+</sup> 765 766自定义弹窗的内容,继承自[BaseDialogOptions](#basedialogoptions11)。 767 768**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 769 770**系统能力:** SystemCapability.ArkUI.ArkUI.Full 771 772| 名称 | 类型 | 必填 | 说明 | 773| ------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ | 774| builder | [CustomBuilder](arkui-ts/ts-types.md#custombuilder8) | 是 | 设置自定义弹窗的内容。<br/>**说明:** <br/>builder需要赋值为箭头函数,格式如下:() => { this.XXX() },其中XXX是内部builder名。<br/>如果是全局builder需要在组件内部创建一个builder,在内部builder中调用全局builder。<br/>builder根节点宽高百分比相对弹框容器大小。<br/>builder非根节点宽高百分比相对父节点大小。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 775| backgroundColor <sup>12+</sup>| [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 设置弹窗背板颜色。<br/>默认值:Color.Transparent<br/>**说明:** <br/>当设置了backgroundColor为非透明色时,backgroundBlurStyle需要设置为BlurStyle.NONE,否则颜色显示将不符合预期效果。 | 776| cornerRadius<sup>12+</sup>| [Dimension](arkui-ts/ts-types.md#dimension10) \| [BorderRadiuses](arkui-ts/ts-types.md#borderradiuses9) | 否 | 设置背板的圆角半径。<br />可分别设置4个圆角的半径。<br />默认值:{ topLeft: '32vp', topRight: '32vp', bottomLeft: '32vp', bottomRight: '32vp' }<br /> 圆角大小受组件尺寸限制,最大值为组件宽或高的一半,若值为负,则按照默认值处理。 <br /> 百分比参数方式:以父元素弹窗宽和高的百分比来设置弹窗的圆角。| 777| borderWidth<sup>12+</sup>| [Dimension](arkui-ts/ts-types.md#dimension10) \| [EdgeWidths](arkui-ts/ts-types.md#edgewidths9) | 否 | 设置弹窗背板的边框宽度。<br />可分别设置4个边框宽度。<br />默认值:0<br /> 百分比参数方式:以父元素弹窗宽的百分比来设置弹窗的边框宽度。<br />当弹窗左边框和右边框大于弹窗宽度,弹窗上边框和下边框大于弹窗高度,显示可能不符合预期。 | 778| borderColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) \| [EdgeColors](arkui-ts/ts-types.md#edgecolors9) | 否 | 设置弹窗背板的边框颜色。<br/>默认值:Color.Black<br/> 如果使用borderColor属性,需要和borderWidth属性一起使用。 | 779| borderStyle<sup>12+</sup> | [BorderStyle](arkui-ts/ts-appendix-enums.md#borderstyle) \| [EdgeStyles](arkui-ts/ts-types.md#edgestyles9) | 否 | 设置弹窗背板的边框样式。<br/>默认值:BorderStyle.Solid<br/> 如果使用borderStyle属性,需要和borderWidth属性一起使用。 | 780| width<sup>12+</sup> | [Dimension](arkui-ts/ts-types.md#dimension10) | 否 | 设置弹窗背板的宽度。<br />**说明:**<br>- 弹窗宽度默认最大值:400vp。<br />- 百分比参数方式:弹窗参考宽度为所在窗口的宽度,在此基础上调小或调大。| 781| height<sup>12+</sup> | [Dimension](arkui-ts/ts-types.md#dimension10) | 否 | 设置弹窗背板的高度。<br />**说明:**<br />- 弹窗高度默认最大值:0.9 *(窗口高度 - 安全区域)。<br />- 百分比参数方式:弹窗参考高度为(窗口高度 - 安全区域),在此基础上调小或调大。| 782| shadow<sup>12+</sup>| [ShadowOptions](arkui-ts/ts-universal-attributes-image-effect.md#shadowoptions对象说明) \| [ShadowStyle](arkui-ts/ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 否 | 设置弹窗背板的阴影。<br />当设备为2in1时,默认场景下获焦阴影值为ShadowStyle.OUTER_FLOATING_MD,失焦为ShadowStyle.OUTER_FLOATING_SM | 783| backgroundBlurStyle<sup>12+</sup> | [BlurStyle](arkui-ts/ts-universal-attributes-background.md#blurstyle9) | 否 | 弹窗背板模糊材质。<br/>默认值:BlurStyle.COMPONENT_ULTRA_THICK<br/>**说明:** <br/>设置为BlurStyle.NONE即可关闭背景虚化。当设置了backgroundBlurStyle为非NONE值时,则不要设置backgroundColor,否则颜色显示将不符合预期效果。 | 784 785## BaseDialogOptions<sup>11+</sup> 786 787弹窗的选项。 788 789**系统能力:** SystemCapability.ArkUI.ArkUI.Full 790 791| 名称 | 类型 | 必填 | 说明 | 792| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 793| maskRect | [Rectangle](arkui-ts/ts-methods-alert-dialog-box.md#rectangle8类型说明) | 否 | 弹窗遮蔽层区域。<br/>默认值:{ x: 0, y: 0, width: '100%', height: '100%' }<br/>**说明:**<br/>showInSubWindow为true时,maskRect不生效。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 794| alignment | [DialogAlignment](arkui-ts/ts-methods-alert-dialog-box.md#dialogalignment枚举说明) | 否 | 弹窗在竖直方向上的对齐方式。<br>默认值:DialogAlignment.Default <br/>**说明**:<br/>若在UIExtension中设置showInSubWindow为true, 弹窗将基于UIExtension的宿主窗口对齐。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 795| offset | [Offset](arkui-ts/ts-types.md#offset) | 否 | 弹窗相对alignment所在位置的偏移量。<br/>默认值:{ dx: 0 , dy: 0 } <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 796| isModal | boolean | 否 | 弹窗是否为模态窗口,模态窗口有蒙层,非模态窗口无蒙层。<br/>默认值:true,此时弹窗有蒙层。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 797| showInSubWindow | boolean | 否 | 某弹框需要显示在主窗口之外时,是否在子窗口显示此弹窗。<br/>默认值:false,弹窗显示在应用内,而非独立子窗口。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 798| onWillDismiss<sup>12+</sup> | Callback<[DismissDialogAction](#dismissdialogaction12)> | 否 | 交互式关闭回调函数。<br/>**说明:**<br/>1.当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。当前组件返回的reason中,暂不支持CLOSE_BUTTON的枚举值。<br/>2.在onWillDismiss回调中,不能再做onWillDismiss拦截。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 799| autoCancel<sup>12+</sup> | boolean | 否 | 点击遮障层时,是否关闭弹窗,true表示关闭弹窗。false表示不关闭弹窗。<br/>默认值:true<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 800| maskColor<sup>12+</sup> | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 自定义蒙层颜色。<br>默认值: 0x33000000 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 801| transition<sup>12+</sup> | [TransitionEffect](arkui-ts/ts-transition-animation-component.md#transitioneffect10) | 否 | 设置弹窗显示和退出的过渡效果。<br/>**说明:**<br/> 1.如果不设置,则使用默认的显示/退出动效。<br/> 2.显示动效中按back键,打断显示动效,执行退出动效,动画效果为显示动效与退出动效的曲线叠加后的效果。<br/> 3.退出动效中按back键,不会打断退出动效,退出动效继续执行,继续按back键退出应用。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 802| onDidAppear<sup>12+</sup> | () => void | 否 | 弹窗弹出时的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.在onDidAppear内设置改变弹窗显示效果的回调事件,二次弹出生效。<br />3.快速点击弹出,消失弹窗时,存在onWillDisappear在onDidAppear前生效。<br />4. 当弹窗入场动效未完成时关闭弹窗,该回调不会触发。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 803| onDidDisappear<sup>12+</sup> | () => void | 否 | 弹窗消失时的事件回调。<br />**说明:**<br />正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 804| onWillAppear<sup>12+</sup> | () => void | 否 | 弹窗显示动效前的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.在onWillAppear内设置改变弹窗显示效果的回调事件,二次弹出生效。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 805| onWillDisappear<sup>12+</sup> | () => void | 否 | 弹窗退出动效前的事件回调。<br />**说明:**<br />1.正常时序依次为:onWillAppear>>onDidAppear>>(onDateAccept/onCancel/onDateChange)>>onWillDisappear>>onDidDisappear。<br />2.快速点击弹出,消失弹窗时,存在onWillDisappear在onDidAppear前生效。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 806| keyboardAvoidMode<sup>12+</sup> | [KeyboardAvoidMode](./arkui-ts/ts-types.md#keyboardavoidmode12枚举说明) | 否 | 用于设置弹窗是否在拉起软键盘时进行自动避让。<br/>默认值:KeyboardAvoidMode.DEFAULT<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 807| enableHoverMode<sup>14+</sup> | boolean | 否 | 是否响应悬停态。<br />默认值:false,默认不响应。<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。| 808| hoverModeArea<sup>14+</sup> | [HoverModeAreaType](arkui-ts/ts-appendix-enums.md#hovermodeareatype14) | 否 | 悬停态下弹窗默认展示区域。<br />默认值:HoverModeAreaType.BOTTOM_SCREEN<br/>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。| 809| keyboardAvoidDistance<sup>15+</sup> | [LengthMetrics](js-apis-arkui-graphics.md#lengthmetrics12) | 否 | 弹窗避让键盘后,和键盘之间的距离。<br />**说明:**<br />- 默认值:16vp。<br />- 默认单位:vp。<br />- 当且仅当keyboardAvoidMode属性设置为DEFAULT时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 810| levelMode<sup>15+</sup> | [LevelMode](#levelmode15枚举说明) | 否 | 设置弹窗显示层级。<br />**说明:**<br />- 默认值:LevelMode.OVERLAY。<br />- 当且仅当showInSubWindow属性设置为false时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 811| levelUniqueId<sup>15+</sup> | number | 否 | 设置页面级弹窗需要显示的层级下的[节点 uniqueId](js-apis-arkui-frameNode.md#getuniqueid12)。<br />**说明:**<br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 812| immersiveMode<sup>15+</sup> | [ImmersiveMode](#immersivemode15枚举说明) | 否 | 设置页面内弹窗蒙层效果。<br />**说明:**<br />- 默认值:ImmersiveMode.DEFAULT <br />- 当且仅当levelMode属性设置为LevelMode.EMBEDDED时生效。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。| 813 814## DismissDialogAction<sup>12+</sup> 815 816Dialog关闭的信息。 817 818**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 819 820**系统能力:** SystemCapability.ArkUI.ArkUI.Full 821 822### 属性 823 824| 名称 | 类型 | 可读 | 可写 | 说明 | 825| ------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | 826| dismiss | Callback<void> | 否 | 否 | Dialog关闭回调函数。开发者需要退出时调用,不需要退出时无需调用。 | 827| reason | [DismissReason](#dismissreason12枚举说明) | 否 | 否 | Dialog无法关闭原因。根据开发者需要选择不同操作下,Dialog是否需要关闭。 | 828 829## DismissReason<sup>12+</sup>枚举说明 830 831**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 832 833**系统能力:** SystemCapability.ArkUI.ArkUI.Full 834 835| 名称 | 值 | 描述 | 836| ------------- | ---- | ------------------------------------------------------------ | 837| PRESS_BACK | 0 | 点击三键back、左滑/右滑、键盘ESC。 | 838| TOUCH_OUTSIDE | 1 | 点击遮障层时。 | 839| CLOSE_BUTTON | 2 | 点击关闭按钮。 | 840| SLIDE_DOWN | 3 | 下拉关闭。<br/>**说明:** <br/>该接口仅支持在[半模态转场](./arkui-ts/ts-universal-attributes-sheet-transition.md)中使用。 | 841 842## LevelMode<sup>15+</sup>枚举说明 843 844弹窗显示层级模式。 845 846**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 847 848**系统能力:** SystemCapability.ArkUI.ArkUI.Full 849 850| 名称 | 值 | 说明 | 851| ------- | ---- | ------------------------------------------------ | 852| OVERLAY | 0 | 弹窗层级为应用窗口根节点,应用内路由导航切换弹窗不隐藏。 | 853| EMBEDDED | 1 | 弹窗节点为页面内路由/导航下的节点,随路由导航切换,弹窗随页面隐藏。| 854 855## ImmersiveMode<sup>15+</sup>枚举说明 856 857页面内弹窗蒙层显示区域模式。 858 859**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 860 861**系统能力:** SystemCapability.ArkUI.ArkUI.Full 862 863| 名称 | 值 | 说明 | 864| ------- | ---- | ------------------------------------------------ | 865| DEFAULT | 0 | 弹窗蒙层遵循父节点布局约束进行显示。 | 866| EXTEND | 1 | 弹窗蒙层可扩展至覆盖状态栏和导航条。 867 868## Button 869 870菜单中的菜单项按钮。 871 872**系统能力:** SystemCapability.ArkUI.ArkUI.Full 873 874| 名称 | 类型 | 必填 | 说明 | 875| ----- | ---------------------------------------- | ---- | ------- | 876| text | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 是 | 按钮文本内容。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 877| color | string \| [Resource](arkui-ts/ts-types.md#resource类型) | 是 | 按钮文本颜色。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 878| primary<sup>12+</sup> | boolean | 否 | 在弹窗获焦且未进行tab键走焦时,按钮是否默认响应Enter键。多个Button时,只允许一个Button的该字段配置为true,否则所有Button均不响应。多重弹窗可自动获焦连续响应。<br />**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |