我们公司最近在做百度钱包的移动网页支付的一款产品,产品使用场景是当用户通过百度钱包扫描我们的产品的二维码,
进入我们的产品中,然后用户选择商品并点击购买,然后在我们系统后台生成订单并提交信息到百度钱包进行支付,当支付完
成后我们系统页面会自动的关闭。这个功能在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设备当中测试,是可以关闭页面的。