h5页面返回到微信首页

3,670 阅读1分钟

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();  
         }
     }	
    
}