최근에는 WeChat, Alipay, Baidu Wallet을 사용하여 웹 결제를 구현하고 있는데, 결제에 실패하면 페이지가 자동으로 닫힙니다. 오류 페이지에서 돌아가기
를 클릭하거나 Android 물리 버튼을 눌러 뒤로 돌아가면 페이지가 닫힙니다.
WeChat, Alipay 및 Baidu Wallet에서는 페이지 닫기를 캡슐화합니다. 기존 window.close()는 유효하지 않으며 페이지를 닫으려면 해당 js 코드를 사용해야 합니다. 다음은 모바일 앱을 닫는 세 가지 방법입니다
:
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("百度客户端"); }
(돌아가기, 이전 페이지 및 뒤로) 모니터 및 현재 페이지 주소를 기록에 추가:
$(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", "#"); } });
위는 WeChat에서 돌아가기 버튼을 클릭하여 현재 페이지와 창을 닫는 방법입니다. 알리페이, 바이두월렛 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 주목해주세요!
관련 기사:
현재 페이지(창)를 닫는 여러 가지 방법에 대한 JS 요약
.