我們公司最近在做百度錢包的移動網頁支付的一款產品,產品使用場景是當用戶通過百度錢包掃描我們的產品的二維碼,
進入我們的產品中,然後用戶選擇商品並點擊購買,然後在我們系統後台生成訂單並提交信息到百度錢包進行支付,當支付完
成後我們系統頁面會自動的關閉。這個功能在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設備當中測試,是可以關閉頁面的。