android支付寶客戶端html5網頁偶爾無法自動關閉問題

公司產品使用支付寶移動網頁接口支付,當三方商戶傳入跳轉地址,在支付寶頁面支付成功後跳轉到該地址,如果沒傳將會自動關閉頁面。

測試的時候在ios客戶端上面可以,但是在android客戶端上偶爾行偶爾不行。


以前代碼:


$(function(){
	if('${code}'=="00")
	{
		 if('${merUrl}'!="")
		 {
		   window.location.href='${merUrl}';
		 }else{
			 AlipayJSBridge.call('closeWebview');  
	    }
	}else{
			$("#error_msg").html("支付失敗");
			$("#error").show();
	}
  });

 通過查找支付寶網頁支付的相關的js api文檔,文檔中描述當頁面加載完後會創建 AlipayJSBridge對象,同時會觸發AlipayJSBridgeReady事件。

從這句話中找到了網頁在android的支付寶客戶端偶爾關閉得了偶爾不行的原因:

  可能關閉不了的原因是當執行 AlipayJSBridge.call('closeWebview')操作時,AlipayJSBridge還沒有創建,所以無法執行。因此我們需要對Alipay

JSBridgeReady事件進行監聽。


解決代碼:


document.addEventListener('AlipayJSBridgeReady', function () {
	if('${code}'=="00")
	{
		 if('${merUrl}'!="")
		 {
		     window.location.href='${merUrl}';
		 }else{
			 AlipayJSBridge.call('closeWebview');  
	    }
	}else{
			$("#error_msg").html("支付失敗");
			$("#error").show();
	}
 }, false);

以上代碼完美解決了問題,通過測試在android、ios支付寶移動客戶端上都能完美自動關閉頁面。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章