在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口

转自:http://blog.csdn.net/mr_smile2014/article/details/52065398


最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回

或者Android物理按键上一步的时候,将关闭页面。

在微信、支付宝、百度钱包中,他们对页面关闭进行了封装,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。下面是三种移动app


的关闭方式:

[java]  view plain  copy
 print ?
  1. WeixinJSBridge.call('closeWindow');//微信  
  2.  AlipayJSBridge.call('closeWebview');  //支付宝  
  3.  BLightApp.closeWindow();//百度钱包  

通过浏览器的头判断是那种浏览器:

[java]  view plain  copy
 print ?
  1. var ua = navigator.userAgent.toLowerCase();    
  2. f(ua.match(/MicroMessenger/i)=="micromessenger") {    
  3.       alert("微信客户端");  
  4. else if(ua.indexOf("alipay")!=-1){    
  5.  alert("支付宝客户端");   
  6. }else if(ua.indexOf("baidu")!=-1){    
  7.  alert("百度客户端");   
  8. }  

返回、上一页、后退进行监听,并对history中放入当前页地址:

[cpp]  view plain  copy
 print ?
  1. $(function(){  
  2.             pushHistory();  
  3.             window.addEventListener("popstate", function(e) {  
  4.                   
  5.         }, false);  
  6.             function pushHistory() {  
  7.                 var state = {  
  8.                     title: "title",  
  9.                     url: "#"  
  10.                 };  
  11.                 window.history.pushState(state, "title""#");  
  12.             }  
  13. });  

整个实现完整代码:

[java]  view plain  copy
 print ?
  1. $(function(){  
  2.             pushHistory();  
  3.             window.addEventListener("popstate", function(e) {  
  4.                 pushHistory();  
  5.                 var ua = navigator.userAgent.toLowerCase();    
  6.                 if(ua.match(/MicroMessenger/i)=="micromessenger") {    
  7.                      WeixinJSBridge.call('closeWindow');  
  8.                 } else if(ua.indexOf("alipay")!=-1){    
  9.                      AlipayJSBridge.call('closeWebview');    
  10.                 }else if(ua.indexOf("baidu")!=-1){    
  11.                     BLightApp.closeWindow();  
  12.                 }  
  13.                 else{  
  14.                     window.close();  
  15.                 }  
  16.         }, false);  
  17.             function pushHistory() {  
  18.                 var state = {  
  19.                     title: "title",  
  20.                     url: "#"  
  21.                 };  
  22.                 window.history.pushState(state, "title""#");  
  23.             }  
  24.         });  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值