前端工作爬坑日记(一):js监听Android手机物理返回按键

本文介绍了如何在web应用中利用js监听Android手机的物理返回按键。通过window.history.pushState和popstate事件,实现用户点击返回键时弹出确认对话框。文章详细解释了实现逻辑和注意事项,提供实现代码和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端工作爬坑日记(一):js监听Android手机物理返回按键

功能需求描述

在工作开发过程中,遇见一个功能需求,要求在页面A.html对Android手机的物理返回按键进行监听,当用户点击物理返回按键时,弹出confirm弹框:用户点击“确定”,跳转至页面B;用户点击取消,仍停留在当前页面,此时点击物理返回按键,依旧弹出confirm弹框,重复上述过程。

实现逻辑

当前,js并没有对应Android手机物理返回按键这一事件的API,无法直接对这一事件进行监听以及后续操作,因此,我们只能通过js的其他方法,来实现近似的效果。这里,我们考虑的是使用history有关的方法来实现。接下来,简要介绍一下本次需要使用的几个方法

  1. window.history.pushState(state, title, utl) :在页面中直接创建一个history实体,并将其添加到历史记录中;
    state:对象,可存储数据,可以通过 history.state方法进行读取;
    title:对应历史记录的标题
    url:创建的历史记录的链接。进行历史记录操作时会跳转到该链接。
  2. popstate:history实体被改变时,触发该事件;

具体实现的思路就是,在页面加载时,通过window.history.pushState 方法,创建一个无实际使用意义的history实体。随后,通过addEventLister方法对popstate方法进行进行,并绑定自己想要执行的函数。需要注意的是,这里的addEventListener的 use Capture 参数需要为默认的false,使其在冒泡阶段执行。

在上面创建新的无意义history实体的用处是,由于用户点击Android物理返回按键时,会在触发popstate事件时,销毁最新的history实体,通过创建新的无意义history实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值