HarmonyOS 鸿蒙Next如何拦截系统返回,实现返回时提示二次确认弹窗

发布于 1周前 作者 zlyuanteng 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何拦截系统返回,实现返回时提示二次确认弹窗

如题:如何拦截系统返回,实现返回时提示二次确认弹窗

2 回复
可使用window.on(‘keyboardHeightChange’)监听键盘高度,判断软键盘的显示与隐藏

文档:

@ohos.window (窗口)-图形图像-ArkTS API-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者 (huawei.com)

let windowClass: Promise<window.Window> = window.getLastWindow(getContext(this))
windowClass.then((info) => {
  info.on(‘keyboardHeightChange’, (data) => {
    this.keyboardHeight = data;
    hilog.info(0x0000, ‘testTag11’, ‘getBundleInfoForSelf successfully: %{public}s’, JSON.stringify(data));
    console.info('Succeeded in enabling the listener for keyboard height changes. Data: ’ + JSON.stringify(data));
  });
});

更多关于HarmonyOS 鸿蒙Next如何拦截系统返回,实现返回时提示二次确认弹窗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,拦截系统返回键并实现返回时提示二次确认弹窗,可以通过重写系统返回事件处理逻辑来实现。以下是实现这一功能的基本步骤:

  1. 重写onBackPressed方法: 在Activity或Ability类中,重写onBackPressed方法。这个方法会在用户点击返回键时被调用。

  2. 显示二次确认弹窗: 在onBackPressed方法中,使用系统提供的Dialog或其他UI组件显示一个包含确认和取消选项的弹窗。

  3. 处理弹窗结果: 根据用户点击的是确认还是取消按钮,执行相应的逻辑。如果用户点击确认,则执行返回操作;如果点击取消,则忽略返回操作。

  4. 注意事项: 确保在显示弹窗时,不会阻塞其他UI操作或系统事件。此外,要处理好弹窗的显示和隐藏逻辑,避免重复显示或隐藏。

示例代码(伪代码):

@Override
public boolean onBackPressed() {
    showConfirmDialog("确定要退出吗?", new ConfirmListener() {
        @Override
        public void onConfirm() {
            finish(); // 执行返回操作
        }

        @Override
        public void onCancel() {
            // 忽略返回操作
        }
    });
    return true; // 拦截默认返回行为
}

注意:上述代码为伪代码,具体实现需根据HarmonyOS的API和组件进行调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部