目录

  • 1.自定义导航(只能拦截左上角返回)
  • 2.内嵌H5实现拦截物理键返回(均可监听)

微信小程序开发过程中我们经常遇到需要监听点击左上角返回、手机物理返回键或者左滑返回的需求
微信原生是没有API支持监听的
这时候我们可以借助以下两种方法实现该操作

1.自定义导航(只能拦截左上角返回)

当页面配置navigationStyle设置为custom的时候可以使用此组件替代原生导航栏

  "navigationStyle": "custom",

如果想要全局替换可以直接在 app.js中配置,单页面使用可在对应的xxx.js中使用
使用自定义导航 我们可以在点击左上角箭头返回的方法中实现各种需求
但是这种方法只能监听左上角的返回 达不到我们想要的效果
附:https://github.com/lingxiaoyi/navigation-bar
上边是我项目中使用过的导航组件 具体使用方法可以看该组件介绍

2.内嵌H5实现拦截物理键返回(均可监听)

这种方式可以监听三种返回操作 需要使用内嵌H5来解决
微信小程序内嵌H5方法

<web-view src="{{url}}"></web-view>

注意:需要提前配置h5的域名到小程序后台的业务域名中

然后在H5中我们要使用pushState方法,通过window.history方法来对浏览器历史记录的读写
pushState是H5的API中新添加的,
在 HTML 文件中, history.pushState() 方法向浏览器历史添加了一个状态。
pushState() 带有三个参数:状态对象,标题,以及自定义URL地址。
直接上代码

<!DOCTYPE html>
<html><meta name="viewport" content="width=device-width"><script type="text/javascript">window.history.pushState(null, null, "#");window.addEventListener("popstate", function(e) {window.history.pushState(null, null, "#");alert('我被拦截了')})</script>
<body><p>测试物理键返回</p>
</body>
</html>

H5及微信小程序实测可用——监听手机返回键操作相关推荐

  1. JS 监听手机返回键

    JS监听手机返回键,需要用些前端的"奇技淫巧". 核心代码如下: if (window.history && window.history.pushState) { ...

  2. 原生js监听手机返回键

    创建人:hu_time 描述:js监听手机返回键 普通页面跳转,监听返回上一页: document.addEventListener("plusready", function() ...

  3. Android监听手机返回键

    Android在做项目时,有时候点击返回按钮没反应(有冲突),那就需要我们监听返回键.重写onKeyDown()方法: // 监听手机返回键 @Override public boolean onKe ...

  4. 监听手机返回键或浏览器后退键并自定义跳转地址

    /**  * 监听手机返回键或浏览器后退键并自定义跳转地址  * oldUrl 本页对应的url  * backUrl 后退到页面的Url  */ function backBtnToUrl(oldU ...

  5. 微信公众号监听手机返回键事件jssdk—wx.closeWindow

    需求场景: 只有扫码初始进入异业联盟活动页,0元券直接弹框领取成功(如图1) 抛出问题: 进入优惠券包后到另一个页面(如图1) 然后按手机返回会回到异业联盟活动页,始终弹出领取活动页面 解决方案: 在 ...

  6. 微信小程序实现watch监听,无需页面引入!!!

    目录 1监听函数实现 2.页面Page重写(实现无需引入) 3完整代码实现 4微信小程序代码片段 大家都知道小程序其实和Vue的写法以及原理都存在很大的相同,但是里有watch监听可以监听data定义 ...

  7. 微信小程序实现watch监听数据变化

    起因:众所周知,微信小程序的数据监听器observers只能在自定义组件中使用,如果想要在页面中实现类似的功能,就只有通过其他的方法.其一就是通过模拟vue的watch来监听数据变化. 实现如下: 1 ...

  8. 微信小程序自定义导航栏 navigation bar 返回键 首页

    微信小程序自定义导航栏(wx_custom_navigation_bar) 自定义返回键.首页键,动态设置标题,响应式组件 版本号:2.0.0 作者:chen-yt github: https://g ...

  9. js监听手机返回按键操作,禁用返回按键操作。

    **使用到的技术要点:**history.pushState() 原理暂不做解释,后续再做补充,可参考popstate官方文档 1.禁用手机返回按键,引入直接可用,亲测. XBack = {};(fu ...

最新文章

  1. 用AI实现C++、Java、Python代码互译,运行成功率最高达80.9%
  2. 学用 TStringGrid [7] - ColWidths[0]、RowHeights[0]、GridLineWidth
  3. java垃圾回收机制_JVM的垃圾回收机制——垃圾回收算法
  4. 使用模态窗口编辑数据
  5. C语言,realloc
  6. 容器技术Docker K8s 18 容器服务ACK基础与进阶-容器网络管理
  7. linux硬盘温度,linux查看硬盘温度和使用情况
  8. 让代码更美:10大编程字体
  9. lq106kf打印机设置_爱普生lq106kf
  10. STM32 HAL库学习笔记3-HAL库外设驱动框架概述
  11. 【保姆级教程】Spring Boot单元测试(Controller层的Header处有Token验证的详细示例代码),文末介绍Postman 的基本使用
  12. pytorch自定义Dataset,torch加载自己的numpy数据集,torch-cnn训练numpy进行回归
  13. 一篇学完:王道考研408计算机网络(全)
  14. Markdown中表格中内容换行、左对齐等基本操作
  15. 2018年6月13日任务
  16. 【拍摄日志五】拍摄手法,画面构图,光影关系
  17. Tomcat安装及环境配置教程
  18. 简易支付验证:即时支付、签名的有效性和交易的完整性
  19. 解释reverse=True等python基础问题
  20. 华三 h3c Rip、静态路由、silent-interface配置

热门文章

  1. uniapp对接微信公众号H5微信支付、分享、小程序隐藏右上角分享胶囊
  2. 第三周 AVI、MP4、WAV文件格式
  3. IPP简介及windows下安装说明
  4. html中的字体样式
  5. helm3.7.2及helm-push_0.10.1安装及使用
  6. 【WebServerProgramming】Ch.1 网络因特网Web
  7. 学会这些快准狠的Word技巧,你也能成为Word高手
  8. JavaScript高级(二)|函数进阶+正则表达式
  9. matlab绘制银河系,科学家们是如何绘制宇宙星系图的?
  10. 一个简易版的新闻应用(同时兼容手机和平板)