HarmonyOS鸿蒙Next中自定义弹窗CustomDialog在连续返回两次时,没有走onWillDismiss回调

HarmonyOS鸿蒙Next中自定义弹窗CustomDialog里有输入框,并点击输入框拉起软键盘,然后在连续返回两次时,没有走onWillDismiss回调

3 回复

5.0.0(12) Release及以下存在该问题,需要应用侧增加路由切换监听,关闭弹窗的方案进行适配(具体为在页面切换时调用CustomDialogController的close方法);

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-methods-custom-dialog-box

在5.0.0(12) Release以上版本移除适配方案。

更多关于HarmonyOS鸿蒙Next中自定义弹窗CustomDialog在连续返回两次时,没有走onWillDismiss回调的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,CustomDialog连续返回两次时未触发onWillDismiss回调,可能是由于系统在处理连续返回操作时,直接关闭了弹窗而未执行回调逻辑。建议检查弹窗的生命周期管理,确保在每次返回时正确触发相关回调。

在HarmonyOS Next中,CustomDialog的onWillDismiss回调未触发的问题通常与系统事件处理机制有关。当连续两次返回操作时,第一次返回会关闭软键盘(系统级事件),第二次返回才会真正关闭对话框,但此时可能已跳过回调触发时机。

建议检查以下两点:

  1. 确保在onBackPressed()中正确处理了返回事件链,可尝试重写该方法并手动触发回调;

  2. 考虑使用onDismiss回调替代,或在关闭软键盘时主动保存输入状态。

这种情况属于系统事件优先级的正常表现,建议通过日志跟踪事件流来优化交互逻辑。

回到顶部