HarmonyOS 鸿蒙Next 如何在非组件class中弹框
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中弹框
/**
* 显示协作管理弹框
* @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中弹框
更多关于HarmonyOS 鸿蒙Next 如何在非组件class中弹框的实战教程也可以访问 https://www.itying.com/category-93-b0.html
        
          3 回复
        
      
      
        经确认目前CustomDialog不支持在封装的Class中弹出,如您有封装全局弹窗的需求,请参考如下链接:https://gitee.com/harmonyos-cases/cases/blob/master/CommonAppDevelopment/feature/customdialog/README.md,
更多关于HarmonyOS 鸿蒙Next 如何在非组件class中弹框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,弹框通常是通过组件(如Dialog或Toast)来实现的。在非组件类中直接弹框并不符合典型的架构设计,因为弹框需要依赖UI上下文(如Ability或Fragment),而这些上下文通常不在非组件类中。
要在非组件类中实现弹框功能,你可以采取以下步骤:
- 
定义回调接口:在非组件类中定义一个回调接口,用于通知UI层需要弹框。
 - 
实现回调:在UI组件(如
Ability或Fragment)中实现这个回调接口,并在实现中处理弹框逻辑。 - 
触发回调:在非组件类中,当需要弹框时,通过回调接口通知UI层。
 - 
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
        
      
                  
                  
                  
