最近在使用微信、支付寶、百度錢包實現網頁支付,對支付成功將自動關閉頁面,對於支付失敗,將顯示錯誤信息。當在錯誤頁面的時候,點擊返回瀏覽器
或者Android物理按鍵上一步的時候,將關閉頁面。微信
在微信、支付寶、百度錢包中,他們對頁面關閉進行了封裝,傳統的window.close()是無效的,必需要使用它們的js代碼才能關閉。下面是三種移動appapp
的關閉方式:url
WeixinJSBridge.call('closeWindow');//微信
AlipayJSBridge.call('closeWebview'); //支付寶
BLightApp.closeWindow();//百度錢包.net
經過瀏覽器的頭判斷是那種瀏覽器:blog
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
alert("微信客戶端");
} else if(ua.indexOf("alipay")!=-1){
alert("支付寶客戶端");
}else if(ua.indexOf("baidu")!=-1){
alert("百度客戶端");
}ip
對返回、上一頁、後退進行監聽,並對history中放入當前頁地址:支付寶
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
}, false);
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
});it
整個實現完整代碼:io
$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { pushHistory(); var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { WeixinJSBridge.call('closeWindow'); } else if(ua.indexOf("alipay")!=-1){ AlipayJSBridge.call('closeWebview'); }else if(ua.indexOf("baidu")!=-1){ BLightApp.closeWindow(); } else{ window.close(); } }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } });--------------------- 做者:Mr_Smile2014 來源:CSDN 原文:https://blog.csdn.net/Mr_Smile2014/article/details/52065398 版權聲明:本文爲博主原創文章,轉載請附上博文連接!