h5页面返回到微信首页等同于关闭当前打开页面
使用微信内置WeixinJSBridge.call直接关闭
setTimeout(function() {
//这个可以关闭安卓系统的手机
document.addEventListener(
"WeixinJSBridgeReady",
function() {
WeixinJSBridge.call("closeWindow");
},
false
);
//这个可以关闭ios系统的手机
WeixinJSBridge.call("closeWindow");
}, 300);
复制代码
监听页面离开,添加历史记录
pushHistory();
//监听触发物理返回按钮
window.addEventListener("popstate",function() {
//do something
console.log("我监听到页面离开了")
f_close();//执行关闭浏览器窗口,返回公众号首页
return;
});
function pushHistory() {
//该方法添加了一个历史记录,路径为'#',保证了不刷新页面,不直接后退
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
function f_close(){
//微信内部浏览器私有接口WeixinJSBridge
if(typeof(WeixinJSBridge)!="undefined"){
//微信关闭当前页面
WeixinJSBridge.call('closeWindow');
}else{
//navigator.userAgent.indexOf来判断浏览器类型
if (navigator.userAgent.indexOf("MSIE") > 0) {
if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
//打开新窗口并且关闭本窗口不弹出要关闭窗口前的提示
只支持IE6不支持IE7,IE8
window.opener = null;
window.close();
} else {
//window.open是用来打开一个新窗口的函数!
window.open('', '_top');
window.top.close();
}
} else if (navigator.userAgent.indexOf("Firefox") > 0) {
window.location.href = 'about:blank ';
} else {
window.opener = null;
//支持IE7,IE8的问题
window.open('', '_self', '');
window.close();
}
}
}
复制代码
转载于:https://juejin.im/post/5d01f095f265da1bc37f0947