监听微信浏览器返回事件实现关闭浏览器方法

一.需求:

用户支付完后,会跳转到一个给用户提示支付成功的页面(这个页面不是微信的,是我们自己的程序页面),然后用户点返回键的时候直接关闭微信浏览器,而不是返回到上一个页面.

二.解决方案

注:

1.这里需要你引入微信的jsapi文件http://res.wx.qq.com/open/js/jweixin-1.1.0.js,才能调用wx.closeWindow();关闭浏览器.

2.需要浏览器支持h5新特性:pushState(很庆幸微信没有像IE那样的兼容问题了)

这里面的原理我就不说了,大家网上找一下history.pushState的相关资料就好了,当然还可以用现成的库pjax

三.总结

找到这个方法的过程还是蛮曲折的,最开始是想window.location.href跳转,按返回会跳回去,然而想多了,因为这种方式链接根本没有记录到浏览器的历史记录里面,后面通过查资料,用pushState有方式把链接压入历史记录里面,然后再回到一个页面再关闭浏览器,这样做使得用户会看到一个空白页,最后就是上文的方式,结合事件和历史记录来实现这个功能.

如果有更好的方式,欢迎大家一起探讨.

你的评论是对我最大的鼓励