Androidアリペイクライアントhtml 5ページが自動的に閉じられない問題の解決方法
1504 ワード
会社の制品は支付宝モバイルのホームページのインタフェースを使って支払いをして、三方の商戸がジャンプの住所に入って、支付宝のページの支払いに成功した后にこの住所にジャンプして、もし伝わらないならば自动的にページを闭じます.
テストするときはiosクライアントの上でできますが、Androidクライアントではたまにできません.
以前のコード:
アリペイのWeb決済に関するjs apiドキュメントを検索すると、ページのロードが完了するとAlipayJsBridgeオブジェクトが作成され、AlipayJsBridgeReadyイベントがトリガーされると説明されます.
この言葉から、androidの支付宝クライアントがたまに閉鎖され、たまにだめになった理由が見つかりました.
閉じられないのは、AlipayJsBridgeが実行されたからかもしれません.call('closeWebview')操作の場合、AlipayJSPBridgeはまだ作成されていないので実行できません.そのため、AlipayJsBridgeReadyイベントをリスニングする必要があります.
解決コード:
以上のコードは問題を完璧に解決し、android、ios支付宝モバイルクライアントでテストすることでページを完全に自動的に閉じることができます.
テストするときはiosクライアントの上でできますが、Androidクライアントではたまにできません.
以前のコード:
$(function(){
if('$[code]'=="00")
{
if('${merUrl}'!="")
{
window.location.href='${merUrl}';
}else{
AlipayJSBridge.call('closeWebview');
}
}else{
$("#error_msg").html(" ");
$("#error").show();
}
});
アリペイのWeb決済に関するjs apiドキュメントを検索すると、ページのロードが完了するとAlipayJsBridgeオブジェクトが作成され、AlipayJsBridgeReadyイベントがトリガーされると説明されます.
この言葉から、androidの支付宝クライアントがたまに閉鎖され、たまにだめになった理由が見つかりました.
閉じられないのは、AlipayJsBridgeが実行されたからかもしれません.call('closeWebview')操作の場合、AlipayJSPBridgeはまだ作成されていないので実行できません.そのため、AlipayJsBridgeReadyイベントをリスニングする必要があります.
解決コード:
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支付宝モバイルクライアントでテストすることでページを完全に自動的に閉じることができます.