微信浏览器左上角返回按钮拦截功能
在微信公众号开发中,有时需要对浏览器左上角返回按钮进行拦截处理相关的页面逻辑,而并不是让页面直接返回上一页,之前在这个细节点上的一直实现得不是很好。但看到京东购物公众号上的效果却实现得非常好,所以自己也开始了这方面的尝试。京东的效果如下图:

从上图京东购物效果上来看,在点击搜索拉起一个搜索界面,然后点击左上角反回,只是将搜索界面收起,而页面没有重新像读取进度条一样去返回,而我页面需要的正是这样的效果,下面就用vue来做一个这个过程的demo吧。
前提:微信左上角的返回按钮其实无法被拦截,但是可以监听到这个返回事件。
思路:要想真正拦截返回事件,可以当前页面先向window.history中添加一个记录(实际只是在历史记录堆栈中添加一条记录pushState,浏览器并不会真正去加载这个路径),当点击返回时,监听到返回事件处理自己想处理的逻辑,反正微信它是一定要执行返回,刚添加的那条记录就会从window.history拿出并将此路径替换当前页面路径。注意:这里只是路径的替换,只是将路径换了个名字,并不是会真正去加载这个路径。
实现:demo里建立了两个vue页面(first 和 two),第一个页面跳转到到第二个页面。然后在第二个页面弹出一个蒙层,这时点击左上角返回时,并不是返回first,而是先将蒙层消失,再次点击返回时才是返回上一页;
实现效果如下:
相关代码讲解:
1 在第二个页面mounted方法中加入,添加监听返回事件方法。当返回按钮被点击时,这里让弹出的蒙层隐藏;
mounted() {
let that = this;
// 添加返回事件监听
window.addEventListener("popstate", function(e) {
that.isShowTestDiv = false;
}, false);
},
2 监听蒙层,当它显示时,在window.history(历史堆栈)中添加一条记录;
watch: {
isShowTestDiv: function(newVal, oldVal) {
if (newVal === true) {
this.pushHistory();
}
}
}
pushHistory() { // 修改history
var state = {
title: "",
url: "/two" // 这个url可以随便填,只是为了不让浏览器显示的url地址发生变化,对页面其实无影响
};
window.history.pushState(state, state.title, state.url);
},
3 最后弹出的蒙层如果用户点蒙层上相关操作将蒙层关闭,那么要手动将自己添加的那条记录从history中移除,在vue将路由back一下即可。
helloClick() { // 点击弹出来的hello蒙板
this.isShowTestDiv = false;
this.$router.back(); // 将添加记录从history中移除
}
demo地址
gitHub: https://github.com/LiJinShi/wechat_back_vue
总结
以上所述是小编给大家介绍的微信浏览器左上角返回按钮拦截功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
微信怎么更换默认浏览器?微信打开网页的时候,可以选择浏览器,但是后来再打开的时候发现没办法选择浏览器了,下面我们就来看看微信选择浏览器的教程,需要的朋友可以参考2017-09-20- UC浏览器推出“抢票帮”功能。用户登陆UC抢票专家,在“抢票帮”中建立自己的抢票任务,并通过微信或二维码分享给好友,即可让朋友帮抢你需要的火车票。感兴趣的朋友们可以2014-12-20
- 新版的UC浏览器有个微信摇一摇传图功能,那么UC浏览器如何使用微信摇一摇传图功能?下面小编就给大家分享下方法,希望可以帮助到大家2014-11-21
- QQ浏览器微信版就是Windows版微信,横跨了QQ浏览器和微信两个产品线,喜欢的朋友欢迎下载体验2014-10-14
- 在浏览器中可以添加微信网页版,方便快捷登录。在搜狗浏览器中如何添加微信呢?需要一个插件,首先安装搜狗浏览器,接着在添加微信插件,详细步骤如下2014-10-10
- 在浏览器上面进行微信版网页版聊天,能和浏览器完美的结合,让你在手机不方便使用的情况下也可以用电脑进行微信聊天哦,下面是具体的操作方法2014-09-12
- 在使用UC浏览器时,我们可以看到UC浏览器电脑版提供了微信网页版插件的支持,那么在UC浏览器上如何添加微信网页版呢?现在将教大家一个方法,希望对大家有所帮助2014-09-04
在手机不方便使用的情况下如何在浏览器上面进行微信版网页版聊天
其实也可以在浏览器上面进行微信版网页版聊天,能和浏览器完美的结合,在手机不方便使用的情况下在电脑上进行微信聊天,下面介绍下利用浏览器进行微信网页版聊天的方法2014-06-26



最新评论