Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onbeforeunload不';Android Chrome上的t触发器[替代解决方案?]_Javascript_Android_Angularjs_Google Chrome - Fatal编程技术网

Javascript window.onbeforeunload不';Android Chrome上的t触发器[替代解决方案?]

Javascript window.onbeforeunload不';Android Chrome上的t触发器[替代解决方案?],javascript,android,angularjs,google-chrome,Javascript,Android,Angularjs,Google Chrome,我开发了一个简单的聊天应用程序,其中我使用$window.onbeforeuload在有人关闭选项卡/浏览器时通知其他用户(基本上是在用户离开房间时) 这是我的密码 $scope.onExit = function() { $scope.chatstatus.$add({ status: $scope.getUsername + ' left' }); }; $window.onbeforeunload = $s

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

这是我的密码

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

    $window.onbeforeunload =  $scope.onExit;
这在桌面浏览器上运行绝对正常,但在Android Chrome浏览器上则不行。根本不会触发
onbeforeuload
功能

请建议解决方案/变通方法。谢谢


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

看起来您需要检查onbeforeuload和onunload

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


看起来您需要同时检查onbeforeunload和onunload

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


也许是重复的?也许是重复的?我的错误,我只谈到了“这在Chrome中工作”的评论。从搜索结果来看,这实际上是移动Chrome中一个长期存在的问题。您是否可以通过X按钮或类似按钮实现自己的“关闭”功能?然后在服务器上安装一些工具,定期检查客户机是否已连接。或者,另一种方法是,angular应用程序定期与服务器进行检查。只是一些让你的功能正常工作的随机建议。谢谢。但是,如果用户选择关闭浏览器选项卡而不是X按钮,那么我们将再次遇到相同的问题。这就是为什么我建议检查它们是否以一定的间隔连接。我使用了window.onunload=window.onbeforeuload,但在Android Chrome中不起作用。其他浏览器都很好,甚至IOS Chrome也很好。我的错误是,我只提到了“这在Chrome中起作用”的评论。从搜索结果来看,这实际上是移动Chrome中一个长期存在的问题。您是否可以通过X按钮或类似按钮实现自己的“关闭”功能?然后在服务器上安装一些工具,定期检查客户机是否已连接。或者,另一种方法是,angular应用程序定期与服务器进行检查。只是一些让你的功能正常工作的随机建议。谢谢。但是,如果用户选择关闭浏览器选项卡而不是X按钮,那么我们将再次遇到相同的问题。这就是为什么我建议检查它们是否以一定的间隔连接。我使用了window.onunload=window.onbeforeuload,但在Android Chrome中不起作用。其他浏览器也不错,甚至IOS Chrome也不错。
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));
});