需求:

微信公众号开发的时候,可能会出现这种需求:

微信公众号内指定某个网页在点击返回键时不回退到上一级,而是直接关闭微信浏览器窗口,用户点击返回按钮本身就是一个返回事件。

解决方案: 利用监听返回事件 window.addEventListener("popstate", function(e) {//你的逻辑}, false)

两种监听返回关闭方法:

(1)需要微信授权

//当点击返回键时,不返回到上一页,而是直接关闭微信浏览器
function onBackCloseWindow() {pushHistory();window.addEventListener("popstate", function(e) {//关闭当前浏览器 //关闭当前浏览器或跳转重定向页面wx.closeWindow();//需微信授权}, false);function pushHistory() {var state = {title: "title",url: "#"};window.history.pushState(state, "title", "#");}

(2)无需微信授权

//当点击返回键时,不返回到上一页,而是直接关闭微信浏览器
function onBackCloseWindow() {pushHistory();window.addEventListener("popstate", function(e) {//关闭当前浏览器或跳转重定向页面WeixinJSBridge.call("closeWindow");}, false);function pushHistory() {var state = {title: "title",url: "#"};window.history.pushState(state, "title", "#");}
}

关于部分安卓机使用手势返回/物理返回键监听不了的问题

上面的代码在IOS中是没有问题的,但是在调试的时候发现部分安卓尽然监听不了popstate;

关于此问题,微信社区也看到了,但是工作人员都没有给出一个满意的解决方案(直接搜一下popstate,会出现关于这个问题的讨论):

  • 公众号中监听popstate 事件在vivoY3手机中不执行?
  • 安卓手机测试发现至少需要手指点击页面任何部分之后返回才会触发popstate

然后也在网上搜一下这个问题(相关文章):

  • 微信内置浏览器返回键popstate事件监听不触发问题(安卓)
  • 很多安卓手机微信浏览器无法监听 popstate、hashchange 事件

粗略说一下网上大神们说的问题的根源:

  • 根源:微信的安全策略 / 微信浏览器内核
  • 解决办法:必须用户点击当前界面(真人交互界面)

关于有人说引入了一些js就解决了(收费),各位大佬可以自行处理这个问题

我的解决方法

遇到这个问题挺束手无策的,当然最后也是解决了,大家可以参考一下

解决: 既然说是要真人交互,那就在监听的界面,弹个窗(自定义的窗口),诱导 用户点击就行,此时如果安卓机使用物理返回啥的,就可以监听到了;

不足:

  • 上面的方法是实在没辙的方法了,如果用户仍然不点击弹窗的话,直接按返回的话依然监听不了的;
  • 其次弹窗这个东西,并不是说加就加,需要跟产品商量,正巧我监听的那个界面可以弹个窗啥的还说的过去;

上面的方法就是属于诱导性方法,如果大神们有找到好的方法也可以讨论讨论~

微信公众号监听返回按钮关闭当前界面,部分安卓机监听popstate失败【小程序与公众号】相关推荐

  1. vue 监听返回按钮

    2020-09-27 09:21:30 移动端当用户使用默认返回按钮的时候,或左滑,或点击返回键 这时候需要监听返回按钮 1.挂载完成后,判断是否支持popstate mounted(){ if (w ...

  2. uniApp 微信小程序 授权 公众号推送信息

    准本工作 1.首先小程序  更公众号关联起来 2.配置相应的域名(也就是你请求后端接口的公共地址) 3.需要写一个h5 页面 用于跳板 公众号 的授权 公众号如何关联小程序? 打开微信公众号后台,选择 ...

  3. 小程序与服务号、App、H5的区别

    小程序与服务号的区别 小程序与服务号是并行体系,同属于微信生态圈.企业要做好.做大一个服务号,基础就是获取大量目标用户的关注,即获得大量粉丝.服务号与用户存在关注和订阅的关系,业界通过粉丝数量判断该服 ...

  4. 小程序与服务号的区别

    小程序与服务号是并行体系,同属于微信生态圈.企业要做好.做大一个服务号,基础就是获取大量目标用户的关注,即获得大量粉丝.服务号与用户存在关注和订阅的关系,业界通过粉丝数量判断该服务号的价值. 小程序与 ...

  5. 微信公众号监听返回按钮问题解决

    2017年12月21日 微信公众号监听返回按钮问题解决 //首页返回路径 $(function(){pushHistory();var bool = false;setTimeout(function ...

  6. h5页 点击返回时关闭_在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口...

    最近在使用微信.支付宝.百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息.当在错误页面的时候,点击返回 或者Android物理按键上一步的时候,将关闭页面. 在微信.支付宝 ...

  7. 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法

    在微信.支付宝.百度钱包实现点击返回按钮关闭当前页面和窗口的方法,传统的window.close()是无效的,必须要使用它们的js代码才能关闭. 最近在使用微信.支付宝.百度钱包实现网页支付,对支付成 ...

  8. 【Android】ActionBar监听返回按钮

    android生成的Activity默认是不显示ActionBar的,如果有需要可以把它打开,并且设置主副标题.返回键键等,重写onOptionsItemSelected才能点击返回键返回上一层 pu ...

  9. 想在微信上使用chatGPT?小程序?公众号?企业微信,最终还是选择了企业微信版本的chatgpt

    chatgpt的接口现在都可以正常用了,但是怎么把这个功能放在手机上随用随开呢? 微信个人聊天版本 小程序版本 公众号版本 企业微信版本 逻辑 实现方式 微信个人聊天版本 网上很多微信机器人版本的,但 ...

最新文章

  1. NOI 2013 矩阵游戏
  2. ibatis迁移到mybatis3
  3. GDCM:gdcm::Dumper的测试程序
  4. oracle access manager token,Laravel 自带的 API 守卫驱动 token 使用详解
  5. dotnet若干说明图片
  6. 前端学习(3107):react-hello-jsx小练习2
  7. MTK 驱动开发(42)---GAT 工具使用
  8. 软件测试---弹出窗口
  9. CSS属性:display详解
  10. PHP开发之留言板项目的一般流程,PHP留言板小项目(大作业)
  11. 手机app测试用例怎么写?手机app测试点有哪些?只有干货没有水分,错过绝对后悔!
  12. github 出现无法连接成功问题终极详解
  13. 计算机键盘和指法练习实验报告模板,实验报告-实验一 计算机的认识与指法练习...
  14. linux网卡发送优化,Linux 性能分析总结之网络(六)
  15. 关于近日番茄花园洪磊被拘之事的一些个人看法
  16. 2010年软件业十大新闻事件
  17. 数据迁移:电脑更换硬盘怎么迁移数据?
  18. COMSOL如何绘制紧贴圆柱面的圆面
  19. python axis到底如何理解?
  20. 2015.3.30第一次博客测试

热门文章

  1. 2022 WAIC 闭幕,融云提供分论坛元宇宙直播技术支持
  2. Java8新特性【函数式编程API、新时间日期处理API、Optional容器类】总结
  3. 腾讯喻帅:腾讯云智慧零售产品发布
  4. 计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码+系统+程序+lw文档+部署
  5. 源码时代UI干货分享|史上最全的HTML三大列表的写法总结,快来收藏吧!
  6. 20181009_Python练习题-二:自动贩卖机:只接受1元、5元、10元的纸币或硬币,可以1元、5元、10元。最多不超过10块钱。饮料只有橙汁、椰汁、矿泉水、早餐奶,售价分别是3.5、4、2、4
  7. 网站劫持是怎样实现的?
  8. mysql database rename_mysql rename database
  9. VMware虚拟机设置 桥接模式:直接连接物理网络下的复制物理网络连接状态选项有什么作用?(续订ip)
  10. mysql rename时长_MySQL · BUG分析 · Rename table 死锁分析