帅小伙努力变强 2025-10-27 15:26 采纳率: 0%
浏览 4

前端 ios pagehide navigator.sendBeacon

ios端使用微信扫码进入第三方支付页面,监听不到微信关闭页面调用接口 都是在
试过了


```方法
window.addEventListener('pagehide', function () {
              userCancelPay();
            });
visibilitychange  beforeunload 都无法生效  接口使用的是
```html
navigator.sendBeacon
  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-10-27 15:31
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你遇到的问题是:在 iOS 设备上,使用微信扫码进入第三方支付页面后,监听不到微信关闭页面时调用接口的问题。

    解决方案

    在 iOS 设备上,微信关闭页面时不会触发 pagehide 事件,而是触发 unload 事件。因此,你可以尝试监听 unload 事件来解决问题。

    window.addEventListener('unload', function () {
        // 调用接口
    });
    

    另外,你也可以尝试使用 navigator.sendBeacon 方法来发送 beacon 请求,这个方法可以在页面关闭时发送请求。

    window.addEventListener('pagehide', function () {
        navigator.sendBeacon('接口地址', '数据');
    });
    

    注意

    在 iOS 设备上,微信关闭页面时可能会有延迟,因此你需要考虑到这个延迟来确保接口调用成功。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日