在卸载和/或beforeunload上发送请求在移动设备上不起作用?

时间:2015-07-14 15:27:06

标签: javascript mobile onbeforeunload onunload

我知道这个问题已在SO上得到解答,但我无法在移动浏览器上运行。

当某个网页关闭时(标签或窗口关闭),我需要向我的服务器发送请求。

以下是我的工作:

    window.addEventListener("unload",function(e) {
        var pl = "bla=blabla";
        var req = new XMLHttpRequest();
        req.open("POST","http://myapi/myendpoint",false);
        req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        req.send(pl);
    },false);

    window.addEventListener("beforeunload",function(e) {
        var pl = "bla=blabla";
        var req = new XMLHttpRequest();
        req.open("POST","http://myapi/myendpoint",false);
        req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        req.send(pl);
    },false);

如果页面刷新或其标签/窗口关闭,这在桌面(Chrome和Firefox)上运行正常。

在移动设备上,它仅在刷新页面或我们输入其他网址时才有效。 如果我们关闭标签或程序(chrome / safari ...),它将无效。到目前为止,我已经测试过了:

  • 三星S5上的Chrome(Android 4.4.2)
  • Samsung S5(Android 4.4.2)上的默认浏览器
  • Safari 3 on iPad 3(iOS 8.0.2)
  • Chrome 3 on iPad 3(iOS 8.0.2)

在移动设备上,如果我们关闭标签,则永远不会发送请求:(!

如何让它在移动设备上完全正常工作? (即关闭/关闭页面选项卡或浏览器时)?

0 个答案:

没有答案