我們公司最近在做百度錢包的移動網頁支付的一款產品,產品使用場景是當用戶通過百度錢包掃描我們的產品的二維碼,
進入我們的產品中,然後用戶選擇商品並點擊購買,然後在我們系統後台生成訂單並提交信息到百度錢包進行支付,當支付完
成後我們系統頁面會自動的關閉。這個功能在android手機上面可以,但是在ios上面無法關閉。
通過聯系百度錢包的技術支持,原來在ios端需要先向document中添加runtimeready事件,當百度錢包的sdk js注入成功
後會觸發runtimeready事件,這樣才能執行相關的關閉窗口的動作。
下面是具體代碼:
var ua = navigator.userAgent.toLowerCase(); //判斷是否為ios設備,其他設備直接調用 BLightApp.closeWindow()關閉 if(ua.indexOf("apple")!=-1||ua.indexOf("mac")!=-1||ua.indexOf("iphone")!=-1) { var event = document.createEvent('Events'); event.initEvent('runtimeready', false,false); document.dispatchEvent(event); document.addEventListener("runtimeready", function(e) { BLightApp.closeWindow(); }, false); }else{ BLightApp.closeWindow(); }
經過在多款iphone設備當中測試,是可以關閉頁面的。