window.onbeforeunload 不会在 Android Chrome 上触发 [alt. solution?

window.onbeforeunload doesn't trigger on Android Chrome [alt. solution?]

本文关键字:alt solution Chrome onbeforeunload Android window      更新时间:2023-09-26

我开发了一个简单的聊天应用程序,当有人关闭选项卡/浏览器时(基本上是当用户离开房间时),我正在使用$window.onbeforeunload通知其他用户。

这是我的代码

$scope.onExit = function() {
        $scope.chatstatus.$add({
            status: $scope.getUsername + ' left'    
        });
    };
    $window.onbeforeunload =  $scope.onExit;

这在桌面浏览器上绝对可以正常工作,但在Android Chrome浏览器上则不行。onbeforeunload函数根本没有被触发。

请提出解决方案/解决方法。谢谢。

编辑:如评论中所述,这是一个已知问题,如果不是解决方案,请提出解决方法。

看起来您需要检查卸载前和卸载。

这个答案看起来是一个很好的方法。

Android Chrome window.onunload

window.onunload = window.onbeforeunload = function() {
    var guid = sessionStorage.getItem("WindowGUID");
    var tmp = JSON.parse(localStorage.getItem("WindowGUIDs"));
    tmp = tmp.remove(guid);  // remove is a custom prototype fn
    localStorage.setItem("WindowGUIDs", JSON.stringify(tmp));
});