H5移动端页面在手机浏览器新开窗口被拦截

发布于 2022-09-11 17:41:15 字数 173 浏览 23 评论 0

如题,调取支付宝支付链接时,H5移动端页面在手机浏览器新开窗口被拦截,

if (res.code === 1) {
    window.open(res.data.url)
}

url是要调起的支付宝支付链接,在PC端是可以正常新开窗口的,但在手机浏览器没有反应

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

诗化ㄋ丶相逢 2022-09-18 17:41:15

先说为什么,因为以前有的流氓网页 在用户进去页面后弹出很多新窗口 影响用户体验,后来浏览器开发商为了避免这种情况就加了判断,如果不是由用户主动操作触发的,就会被浏览器拦截。允许将 open 放到定时器 但是不得超过1000ms 超过的也会被拦截。

类似的还有比如 移动端的 媒体自动播放,在产生用户交互前,都是不能被调用 play 方法。

可以先交由后台创建订单,创建成功后 返回url,然后在UI构建上 判断如果创建成功后 显示一个 modal 框。比如 “去支付” ,然后执行代码。

莫言歌 2022-09-18 17:41:15

某些浏览器在非用户主动触发打开新窗口是会进行拦截。比如你这种由程序自动执行而打开的新窗口,肯定会被拦截掉。
可以将新窗口绑定到用户到操作中,比如click事件之中。
你这个很明显是一个请求获取到结果之后打开。如果这个请求是由用户触发到,可在触发请求时打开窗口,在请求完成重置该窗口到URL为请求结果就OK了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文