H5移动端页面在手机浏览器新开窗口被拦截
如题,调取支付宝支付链接时,H5移动端页面在手机浏览器新开窗口被拦截,
if (res.code === 1) {
window.open(res.data.url)
}
url是要调起的支付宝支付链接,在PC端是可以正常新开窗口的,但在手机浏览器没有反应
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
先说为什么,因为以前有的流氓网页 在用户进去页面后弹出很多新窗口 影响用户体验,后来浏览器开发商为了避免这种情况就加了判断,如果不是由用户主动操作触发的,就会被浏览器拦截。允许将 open 放到定时器 但是不得超过1000ms 超过的也会被拦截。
类似的还有比如 移动端的 媒体自动播放,在产生用户交互前,都是不能被调用 play 方法。
可以先交由后台创建订单,创建成功后 返回url,然后在UI构建上 判断如果创建成功后 显示一个 modal 框。比如 “去支付” ,然后执行代码。
某些浏览器在非用户主动触发打开新窗口是会进行拦截。比如你这种由程序自动执行而打开的新窗口,肯定会被拦截掉。
可以将新窗口绑定到用户到操作中,比如click事件之中。
你这个很明显是一个请求获取到结果之后打开。如果这个请求是由用户触发到,可在触发请求时打开窗口,在请求完成重置该窗口到URL为请求结果就OK了