最近在使用微信、支付寶、百度錢包實現網頁支付,對支付成功將自動關閉頁面,對於支付失敗,將顯示錯誤訊息。當在錯誤頁面的時候,點擊返回
或Android實體按鍵上一步的時候,將關閉頁面。
在微信、支付寶、百度錢包中,他們對頁面關閉進行了封裝,傳統的window.close()是無效的,必須要使用它們的js程式碼才能關閉。以下是三種行動app
的關閉方式:
WeixinJSBridge.call('closeWindow');//微信 AlipayJSBridge.call('closeWebview'); //支付宝 BLightApp.closeWindow();//百度钱包
透過瀏覽器的頭判斷是那種瀏覽器:
var ua = navigator.userAgent.toLowerCase(); f(ua.match(/MicroMessenger/i)=="micromessenger") { alert("微信客户端"); } else if(ua.indexOf("alipay")!=-1){ alert("支付宝客户端"); }else if(ua.indexOf("baidu")!=-1){ alert("百度客户端"); }
對返回、上一頁、後退進行監聽,並對history中放入當前頁地址:
$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } });
整個實現完整程式碼:
$(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", "#"); } });
以上就是 在微信、支付寶、百度錢包實現點擊返回按鈕關閉當前頁面和視窗的內容,更多相關內容請關注PHP中文網(www.php.cn) !
相關文章: