鸿蒙~ArtUI基础开发 Router -- 路由

2023-12-19  本文已影响0人  胡修波

Router用于页面之间的跳转

两种跳转方式:

import router from '@ohos.router';
router.pushUrl({url : "pages/Mypage"})
 router.pushUrl({url : "pages/Mypage"}, router.RouterMode.Single)
router.replaceUrl({url : "pages/Mypage"})
router.pushUrl({url: "pages/MyPage", params: {name: "huxiubo"}})
  onPageShow() {
    const param = router.getParams();
    if (param != undefined) { // 做个判断
        const name = param["name"] as string
        console.info(TAG, `age :${name}`);
    }
  }
router.back();
router.back({
  url: 'pages/Home'
});
router.back({
  url: 'pages/Home',
  params: {
    info: '来自Home页'
  }
});
// 定义一个返回按钮的点击事件处理函数
function onBackClick(): void {
  // 调用router.showAlertBeforeBackPage()方法,设置返回询问框的信息
  try {
    router.showAlertBeforeBackPage({
      message: '您还没有完成支付,确定要返回吗?' // 设置询问框的内容
    });
  } catch (err) {
    console.error(`Invoke showAlertBeforeBackPage failed, code is ${err.code}, message is ${err.message}`);
  }

  // 调用router.back()方法,返回上一个页面
  router.back();
}
function onBackClick() {
  // 弹出自定义的询问框
  promptAction.showDialog({
    message: '您还没有完成支付,确定要返回吗?',
    buttons: [
      {
        text: '取消',
        color: '#FF0000'
      },
      {
        text: '确认',
        color: '#0099FF'
      }
    ]
  }).then((result) => {
    if (result.index === 0) {
      // 用户点击了“取消”按钮
      console.info('User canceled the operation.');
    } else if (result.index === 1) {
      // 用户点击了“确认”按钮
      console.info('User confirmed the operation.');
      // 调用router.back()方法,返回上一个页面
      router.back();
    }
  }).catch((err) => {
    console.error(`Invoke showDialog failed, code is ${err.code}, message is ${err.message}`);
  })
}
上一篇 下一篇

猜你喜欢

热点阅读