最近在使用微信、支付寶、百度錢包實(shí)現(xiàn)網(wǎng)頁支付,對(duì)支付成功將自動(dòng)關(guān)閉頁面,對(duì)于支付失敗,將顯示錯(cuò)誤信息。當(dāng)在錯(cuò)誤頁面的時(shí)候,點(diǎn)擊返回或者Android物理按鍵上一步的時(shí)候,將關(guān)閉頁面。
在微信、支付寶、百度錢包中,他們對(duì)頁面關(guān)閉進(jìn)行了封裝,傳統(tǒng)的window.close()是無效的,必須要使用它們的js代碼才能關(guān)閉。
下面是三種移動(dòng)app的關(guān)閉方式:
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("百度客戶端"); }對(duì)返回、上一頁、后退進(jìn)行監(jiān)聽,并對(duì)history中放入當(dāng)前頁地址:
$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } });整個(gè)實(shí)現(xiàn)完整代碼:
$(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", "#"); } });以上所述是小編給大家介紹的在微信、支付寶、百度錢包實(shí)現(xiàn)點(diǎn)擊返回按鈕關(guān)閉當(dāng)前頁面和窗口的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注