我有一个Angular 8 web应用程序,每当浏览器关闭或运行我的应用程序的浏览器选项卡关闭时,都会调用API。我尝试过以下代码:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
@HostListener('window:beforeunload', ["$event"]) unload(event) {
//calling api
}
}
API的逻辑(变量和函数中的数据)在调整浏览器窗口大小(检查元素)或添加任何断点时按预期运行。我还尝试了https://v8.angular.io/api/core/Directive#host属性。
是我将监听器添加到了错误的组件或DOM对象,或者监听器被移除或未被添加。
@HostListener('window:beforeunload') async ngOnDestroy() {...}
这段代码部分有效。但是,即使用户离开浏览器并转到其他应用程序(如 Word 和 Excel),然后回到浏览器选项卡,此调用也会触发。我该如何仅在关闭浏览器选项卡或窗口时触发此调用? - hemant