前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >H5及微信小程序实测可用——监听手机返回键操作

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

作者头像
Bug Engineer
发布2023-12-25 14:54:11
1.2K0
发布2023-12-25 14:54:11
举报
文章被收录于专栏:Bug EngineerBug Engineer

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

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

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

代码语言:javascript
复制
  "navigationStyle": "custom",

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

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

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

代码语言:javascript
复制
<web-view src="{{url}}"></web-view>

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

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

代码语言:javascript
复制
<!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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.自定义导航(只能拦截左上角返回)
  • 2.内嵌H5实现拦截物理键返回(均可监听)
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档