首页 > 其他分享 >鸿蒙项目实战(六):HMRouter实现两次返回退出应用

鸿蒙项目实战(六):HMRouter实现两次返回退出应用

时间:2024-11-21 15:46:36浏览次数:1  
标签:实战 IHMLifecycle 鸿蒙 HMRouter ExitAppLifecycle export time lastTime

1、定义一个生命周期类ExitAppLifecycle实现IHMLifecycle接口

import { HMLifecycle, HMLifecycleContext, IHMLifecycle } from '@hadss/hmrouter';

@HMLifecycle({lifecycleName: 'ExitAppLifecycle'})
export class ExitAppLifecycle implements IHMLifecycle {
  private lastTime: number = 0; // 上一次后退操作时间
  // 后退按钮事件
  onBackPressed(ctx: HMLifecycleContext): boolean {
    let time = new Date().getTime();
    if(time - this.lastTime > 2000) {
      this.lastTime = time;
      ctx.uiContext.getPromptAction().showToast({
        message: '再按一次返回键回到桌面',
        duration: 2000
      });
      return true;
    } else {
      return false;
    }
  }
}

2、相关页面关联该生命周期类

// 绑定生命周期及自定义转场动画
@HMRouter({ pageUrl: 'Main', singleton:true,lifecycle: 'ExitAppLifecycle', animator: 'pageAnimator' })
@Component
// 注意HMRouter页面需要export
export struct Main {
  builder{}  
} 

标签:实战,IHMLifecycle,鸿蒙,HMRouter,ExitAppLifecycle,export,time,lastTime
From: https://www.cnblogs.com/xqxacm/p/18560932

相关文章

  • 八万字解析CAN总线协议·从入门到实战保姆级教学(源码可直接移植使用)
    目录1. 简介2. CAN物理层特性2.1 CAN总线拓扑图2.2 CAN硬件电路2.3 CAN电平标准2.4 CAN收发器-TJA1050(高速CAN)2.5 ISO11898与11519-2对比3. CAN总线数据帧格式3.1 数据帧3.1.1 帧起始3.1.2 仲裁段3.1.3 控制段3.1.4 数据段3.1.5 C......
  • 中小企业人事管理:SpringBoot框架实战
    第6章系统测试6.1系统测试的目的程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需......
  • 学习笔记(四十):HMRouter简介和配置
    概述:HMRouter作为HarmonyOS的页面跳转场景解决方案,聚焦解决应用内原生页面的跳转逻辑。HMRouter底层对系统Navigation进行封装,集成了Navigation、NavDestination、NavPathStack的系统能力,提供了可复用的路由拦截、页面生命周期、自定义转场动画,并且在跳转传参、额外的生命周期......
  • 【RAG 项目实战 02】 Chainlit 持久化对话历史
    【RAG项目实战02】Chainlit持久化对话历史NLPGithub项目:NLP项目实践:fasterai/nlp-project-practice介绍:该仓库围绕着NLP任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验AI藏经阁:https://gitee.com/fasterai/ai-e-book介绍:该......
  • 【lua脚本】lua脚本在redis的实战案例
    一、Lua脚本的基础二、使用Lua脚本三、Lua脚本示例四、优点五、使用案例5.1原子计数5.2批量操作5.3实现Redis事务六、注意事项Lua脚本在Redis中提供了强大的功能,它允许执行原子性的复杂操作,从而提高Redis的性能和安全性。一、Lua脚本的基础原子性......
  • 鸿蒙NEXT开发案例:简体繁体转换器
    【引言】简体繁体转换器是一个实用的小工具,它可以帮助用户轻松地在简体中文和繁体中文之间进行转换。对于需要频繁处理两岸三地文档的用户来说,这样的工具无疑是提高工作效率的好帮手。本案例将展示如何利用鸿蒙NEXT提供的组件和服务,结合第三方库@nutpi/chinese_transverter,来实......
  • HarmonyOS Next企业级数据安全防护实战:加解密技术综合应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在企业级数据安全防护中加解密技术的综合应用,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、......
  • ehcarts 实战小计-1
    需求展示未来未来36个月(等分为3个时间范围)的经济效益趋势,3个等分时间区域在趋势图上方常显,不同时间区域之间通过灰色虚线间隔开;鼠标hover趋势图每个1/3区域,对应区域会有以下3个效果:时间范围卡片高亮;趋势图上方展示对应指标;趋势图展示阴影效果;鼠标hoveror点击趋势图无t......
  • Java项目实战II基于微信小程序的课堂助手(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。一、前言在信息化教学日益普及的今天,如何更高效地辅助课堂学习,成为了教育技术......
  • Java项目实战II基于微信小程序的书橱系统(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着数字化时代的到来,阅读方式虽日趋多元......