HarmonyOS 鸿蒙Next 如何在非组件class中弹框

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何在非组件class中弹框

class ShareUtils {
/**
* 显示协作管理弹框
* @param pageStack 页面栈
* @param mScheduleModel
* @param tmpClassifyAddTime 项目的addTime
* @param isInviteType 邀请类型 3 项目 4 日程邀请 5 待办邀请
* @param isPrincipalType 类型 0 日程 1 待办
*/
showCooperationManagerDialog(pageStack: NavPathStack,
mScheduleModel: ScheduleModel | undefined | null,
tmpClassifyAddTime: string,
isInviteType: number,
isPrincipalType: number,) {
LoadingDialog.showSuccess(‘加载中…’,)

let dialogControll = new CustomDialogController({
builder:CooperationManagerDialog({
inviteInnerFriend:()=>{

},inviteOuterFriend:()=>{

}}),
customStyle:true,
alignment:DialogAlignment.Bottom,
width:“100%”,
cornerRadius:{topLeft:20,topRight:20,bottomLeft:0,bottomRight:0},
autoCancel:false
})

dialogControll.open()
}
}

let ShareUtil = new ShareUtils();

export default ShareUtil;
弹框弹不出来,在组件中可以。如何在非组件class中弹框

3 回复
经确认目前CustomDialog不支持在封装的Class中弹出,如您有封装全局弹窗的需求,请参考如下链接:https://gitee.com/harmonyos-cases/cases/blob/master/CommonAppDevelopment/feature/customdialog/README.md

在HarmonyOS鸿蒙Next系统中,弹框通常是通过组件(如DialogToast)来实现的。在非组件类中直接弹框并不符合典型的架构设计,因为弹框需要依赖UI上下文(如AbilityFragment),而这些上下文通常不在非组件类中。

要在非组件类中实现弹框功能,你可以采取以下步骤:

  1. 定义回调接口:在非组件类中定义一个回调接口,用于通知UI层需要弹框。

  2. 实现回调:在UI组件(如AbilityFragment)中实现这个回调接口,并在实现中处理弹框逻辑。

  3. 触发回调:在非组件类中,当需要弹框时,通过回调接口通知UI层。

  4. UI层处理:UI层接收到回调后,根据需要在适当的位置创建并显示弹框。

这种方法将弹框逻辑与UI上下文分离,使得代码更加清晰和模块化。

示例代码(简化):

// 非组件类中的回调接口
public interface ShowDialogCallback {
    void onShowDialog();
}

// UI组件中实现回调接口
public class MyAbility extends Ability implements ShowDialogCallback {
    @Override
    public void onShowDialog() {
        // 创建并显示Dialog
    }
}

// 非组件类中触发回调
public class MyNonComponentClass {
    private ShowDialogCallback callback;

    public void setCallback(ShowDialogCallback callback) {
        this.callback = callback;
    }

    public void someMethod() {
        if (callback != null) {
            callback.onShowDialog();
        }
    }
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部