HarmonyOS 如何拦截物理返回

想在页面返回的时候加一个询问弹窗,如何实现

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

页面返回是想加弹框,可在 onBackPress()生命周期中添加弹框,具体可参考下面demo:

//Page7112
import { router } from '@kit.ArkUI';
@Entry
@Component
struct Page7112 {

  build() {
    Column() {
      Button('Page7113')
        .margin(20)
        .onClick(() => {
          router.pushUrl({url:"pages/Page7113"})
        })
    }
  }
}

//Page7113
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Page7113 {
  @State message: string = 'Hello World';

  // 只有被@Entry装饰的组件才可以调用页面的生命周期
  onBackPress() {
    console.info('Index onBackPres这是返回来了吗');
    AlertDialog.show(
      {
        title: '确定返回', // 标题
        message: '是否要返回?', // 内容
        autoCancel: false, // 点击遮障层时,是否关闭弹窗。
        alignment: DialogAlignment.Bottom, // 弹窗在竖直方向的对齐方式
        offset: { dx: 0, dy: -20 }, // 弹窗相对alignment位置的偏移量
        primaryButton: {
          value: '取消',
          action: () => {
            console.info('Callback when the first button is clicked');
            // ApplicationAbility.getInstance()?.quitApp();
          }
        },
        secondaryButton: {
          value: '确定',
          fontColor: '#D94838',
          action: () => {
            console.info('Callback when the second button is clicked这是哈哈啊');
            router.back()
          }
        },
        cancel: () => { // 点击遮障层关闭dialog时的回调
          console.info('Closed callbacks');
        }
      }
    )
    return true // 返回true表示页面自己处理返回逻辑,不进行页面路由;返回false表示使用默认的路由返回逻辑,不设置返回值按照false处理
  }

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('Page7113HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 物理返回键监听
80浏览 • 1回复 待解决
HarmonyOS 如何监听物理返回
44浏览 • 1回复 待解决
如何监听手机“返回物理按键?
10292浏览 • 2回复 已解决
HarmonyOS 监听手机物理返回
46浏览 • 1回复 待解决
HarmonyOS 系统返回如何拦截
60浏览 • 1回复 待解决
HarmonyOS 弹窗中如何拦截返回
52浏览 • 1回复 待解决
HarmonyOS RN如何拦截返回事件
98浏览 • 1回复 待解决
HarmonyOS 在Page中如何拦截系统返回
33浏览 • 1回复 待解决
HarmonyOS 怎么拦截返回键盘
373浏览 • 1回复 待解决
webview拦截返回按钮。
849浏览 • 1回复 待解决
HarmonyOS Web组件拦截返回按钮
32浏览 • 1回复 待解决
有谁知道如何拦截住页面返回
686浏览 • 3回复 待解决
HarmonyOS 拦截系统返回手势问题
616浏览 • 1回复 待解决
HarmonyOS web组件拦截返回手势
28浏览 • 1回复 待解决