openharmony 鸿蒙 capi-arkui-nativemodule-arkui-nativedialogapi-1

2026-08-25 浏览 (1)

ArkUI_NativeDialogAPI_1

typedef struct {...} ArkUI_NativeDialogAPI_1

概述

ArkUI提供的Native侧自定义弹窗接口集合。

起始版本: 12

相关模块: ArkUI_NativeModule

所在头文件: native_dialog.h

汇总

成员函数

名称描述
ArkUI_NativeDialogHandle (*create)()创建自定义弹窗并返回指向自定义弹窗的指针。
void (*dispose)(ArkUI_NativeDialogHandle handle)销毁自定义弹窗。
int32_t (*setContent)(ArkUI_NativeDialogHandle handle, ArkUI_NodeHandle content)挂载自定义弹窗内容。
int32_t (*removeContent)(ArkUI_NativeDialogHandle handle)卸载自定义弹窗内容。
int32_t (*setContentAlignment)(ArkUI_NativeDialogHandle handle, int32_t alignment, float offsetX, float offsetY)设置自定义弹窗对齐方式。
int32_t (*resetContentAlignment)(ArkUI_NativeDialogHandle handle)重置setContentAlignment方法设置的属性,使用系统默认的对齐方式。
int32_t (*setModalMode)(ArkUI_NativeDialogHandle handle, bool isModal)设置自定义弹窗是否开启模态样式的弹窗。
int32_t (*setAutoCancel)(ArkUI_NativeDialogHandle handle, bool autoCancel)设置自定义弹窗是否允许通过点击遮罩层退出。
int32_t (*setMask)(ArkUI_NativeDialogHandle handle, uint32_t maskColor, const ArkUI_Rect* maskRect)设置自定义弹窗遮罩属性。
int32_t (*setBackgroundColor)(ArkUI_NativeDialogHandle handle, uint32_t backgroundColor)设置弹窗背景色。
int32_t (*setCornerRadius)(ArkUI_NativeDialogHandle handle, float topLeft, float topRight,float bottomLeft, float bottomRight)设置弹窗背板圆角半径。
int32_t (*setGridColumnCount)(ArkUI_NativeDialogHandle handle, int32_t gridCount)设置弹窗宽度占栅格宽度的个数。
int32_t (*enableCustomStyle)(ArkUI_NativeDialogHandle handle, bool enableCustomStyle)弹窗容器样式是否可以自定义。
int32_t (*enableCustomAnimation)(ArkUI_NativeDialogHandle handle, bool enableCustomAnimation)弹窗容器是否使用自定义弹窗动画。
int32_t (*registerOnWillDismiss)(ArkUI_NativeDialogHandle handle, ArkUI_OnWillDismissEvent eventHandler)当触发系统定义的返回操作、键盘ESC关闭交互操作时,如果注册了该回调函数,弹窗不会立即关闭,而是由用户决定是否关闭。
int32_t (*show)(ArkUI_NativeDialogHandle handle, bool showInSubWindow)显示自定义弹窗。
int32_t (*close)(ArkUI_NativeDialogHandle handle)关闭自定义弹窗,如已关闭,则不生效。该接口后台执行是异步的,在关闭动画执行完成后弹窗节点才会下树。如需关闭后再次打开弹窗,请在延迟300ms以后再执行。
int32_t (*registerOnWillDismissWithUserData)(ArkUI_NativeDialogHandle handle, void* userData, void (*callback)(ArkUI_DialogDismissEvent* event))注册系统关闭自定义弹窗的监听事件。

成员函数说明

create()

ArkUI_NativeDialogHandle (*create)()

描述:

创建自定义弹窗并返回指向自定义弹窗的指针。

说明:

create方法需要在调用show方法之前调用。

返回:

类型说明
ArkUI_NativeDialogHandle返回指向自定义弹窗的指针,如果创建失败,则返回空指针。

dispose()

void (*dispose)(ArkUI_NativeDialogHandle handle)

描述:

销毁自定义弹窗。

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。

setContent()

int32_t (*setContent)(ArkUI_NativeDialogHandle handle, ArkUI_NodeHandle content)

描述:

挂载自定义弹窗内容。

说明:

setContent方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
ArkUI_NodeHandle content弹窗内容根节点指针。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

removeContent()

int32_t (*removeContent)(ArkUI_NativeDialogHandle handle)

描述:

卸载自定义弹窗内容。

说明:

removeContent方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setContentAlignment()

int32_t (*setContentAlignment)(ArkUI_NativeDialogHandle handle, int32_t alignment, float offsetX, float offsetY)

描述:

设置自定义弹窗对齐方式。

说明:

setContentAlignment方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
int32_t alignment对齐方式,参数类型ArkUI_Alignment
float offsetX弹窗的水平偏移量,浮点型,单位:vp。
float offsetY弹窗的垂直偏移量,浮点型,单位:vp。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

resetContentAlignment()

int32_t (*resetContentAlignment)(ArkUI_NativeDialogHandle handle)

描述:

重置setContentAlignment方法设置的属性,使用系统默认的对齐方式,默认值:ARKUI_ALIGNMENT_TOP_START,参考ArkUI_Alignment

说明:

resetContentAlignment方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setModalMode()

int32_t (*setModalMode)(ArkUI_NativeDialogHandle handle, bool isModal)

描述:

设置自定义弹窗是否开启模态样式的弹窗。

说明:

setModalMode方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
bool isModal设置是否开启模态窗口,模态窗口有蒙层,非模态窗口无蒙层。为true时开启模态窗口,为false时不开启模态窗口。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setAutoCancel()

int32_t (*setAutoCancel)(ArkUI_NativeDialogHandle handle, bool autoCancel)

描述:

设置自定义弹窗是否允许通过点击遮罩层退出。

说明:

setAutoCancel方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
bool autoCancel设置是否允许通过点击遮罩层退出,true表示关闭弹窗,false表示不关闭弹窗。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setMask()

int32_t (*setMask)(ArkUI_NativeDialogHandle handle, uint32_t maskColor, const ArkUI_Rect* maskRect)

描述:

设置自定义弹窗遮罩属性。

说明:

setMask方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
uint32_t maskColor设置遮罩颜色,0xargb格式。
const ArkUI_Rect* maskRect遮蔽层区域范围的指针,遮蔽层区域内的事件不透传,在遮蔽层区域外的事件透传。参数类型ArkUI_Rect

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setBackgroundColor()

int32_t (*setBackgroundColor)(ArkUI_NativeDialogHandle handle, uint32_t backgroundColor)

描述:

设置弹窗背景色。

说明:

setBackgroundColor方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
uint32_t backgroundColor设置弹窗背景颜色,0xargb格式。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setCornerRadius()

int32_t (*setCornerRadius)(ArkUI_NativeDialogHandle handle, float topLeft, float topRight,float bottomLeft, float bottomRight)

描述:

设置弹窗背板圆角半径。

说明:

setCornerRadius方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
float topLeft设置弹窗背板左上角圆角半径,单位:vp。默认值:从API version 12开始,为32vp。API version 11及之前版本,为24vp。
float topRight设置弹窗背板右上角圆角半径,单位:vp。默认值:从API version 12开始,为32vp。API version 11及之前版本,为24vp。
float bottomLeft设置弹窗背板左下圆角半径,单位:vp。默认值:从API version 12开始,为32vp。API version 11及之前版本,为24vp。
float bottomRight设置弹窗背板右下角圆角半径,单位:vp。默认值:从API version 12开始,为32vp。API version 11及之前版本,为24vp。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

setGridColumnCount()

int32_t (*setGridColumnCount)(ArkUI_NativeDialogHandle handle, int32_t gridCount)

描述:

设置弹窗宽度占栅格宽度的个数。

说明:

setGridColumnCount方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
int32_t gridCount默认为按照窗口大小自适应,最大栅格数为系统最大栅格数
取值范围:大于等于0的整数。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

enableCustomStyle()

int32_t (*enableCustomStyle)(ArkUI_NativeDialogHandle handle, bool enableCustomStyle)

描述:

弹窗容器样式是否可以自定义。

说明:

enableCustomStyle方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
bool enableCustomStyle弹窗容器样式是否可以自定义。
默认值:false
true:弹窗容器样式不能自定义,宽度自适应子节点,圆角为0,弹窗背景色透明;false:弹窗容器样式可以自定义,高度自适应子节点,宽度由栅格系统定义,圆角半径24vp,PC/2in1设备避让屏幕边缘以及窗口标题栏。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

enableCustomAnimation()

int32_t (*enableCustomAnimation)(ArkUI_NativeDialogHandle handle, bool enableCustomAnimation)

描述:

弹窗容器是否使用自定义弹窗动画。

说明:

enableCustomAnimation方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
bool enableCustomAnimationtrue:使用自定义动画,关闭系统默认动画;false:使用系统默认动画。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

registerOnWillDismiss()

int32_t (*registerOnWillDismiss)(ArkUI_NativeDialogHandle handle, ArkUI_OnWillDismissEvent eventHandler)

描述:

当触发系统定义的返回操作、键盘ESC关闭交互操作时,如果注册了该回调函数,弹窗不会立即关闭,而是由用户决定是否关闭。

说明:

registerOnWillDismiss方法需要在调用show方法之前调用。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
ArkUI_OnWillDismissEvent eventHandler弹窗关闭的回调函数。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

show()

int32_t (*show)(ArkUI_NativeDialogHandle handle, bool showInSubWindow)

描述:

显示自定义弹窗。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
bool showInSubWindow是否在子窗口显示弹窗。true表示在子窗显示弹窗。false表示不在子窗显示弹窗。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

close()

int32_t (*close)(ArkUI_NativeDialogHandle handle)

描述:

关闭自定义弹窗,如已关闭,则不生效。该接口后台执行是异步的,在关闭动画执行完成后弹窗节点才会下树。如需关闭后再次打开弹窗,请在延迟300ms以后再执行。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。此时仅表示关闭指令下发成功,不代表弹窗完全关闭。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

registerOnWillDismissWithUserData()

int32_t (*registerOnWillDismissWithUserData)(ArkUI_NativeDialogHandle handle, void* userData, void (*callback)(ArkUI_DialogDismissEvent* event))

描述:

注册系统关闭自定义弹窗的监听事件。

参数:

参数项描述
ArkUI_NativeDialogHandle handle指向自定义弹窗控制器的指针。
void* userData用户自定义数据指针。
callback监听自定义弹窗关闭的回调事件。
- event: 回调函数的入参,捕获关闭原因。

返回:

类型说明
int32_t错误码。
ARKUI_ERROR_CODE_NO_ERROR 成功。
ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 arkts-apis-uicontext-contextmenucontroller

openharmony 鸿蒙 errorcode-canvas

openharmony 鸿蒙 capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent

openharmony 鸿蒙 errorcode-bindSheet

openharmony 鸿蒙 js-apis-arkui-uiExtension-sys

openharmony 鸿蒙 capi-arkui-accessibility-arkui-accessibilityeventinfo

openharmony 鸿蒙 capi-arkui-rendernodeutils

openharmony 鸿蒙 capi-native-node-h-nodeattributetype-layoutcomponent

openharmony 鸿蒙 js-apis-arkui-node

openharmony 鸿蒙 capi-native-node-h

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/JJfFmRhs