在我的IOS离子应用程序中,我正在收听cordova插件生成的窗口事件。这是我用来监听事件并执行操作的代码。
window.addEventListener('event', (event) => {
...
console.log("event received");
doSomething();
});
doSomething(){console.log("perform an action");}
一切正常,在打开IOS控制中心(从底部向上滑动)之前,我都能收到活动。再次关闭控制中心后,我可以看到已记录该事件(“接收到事件”),但是从未调用过函数doSomething()。有人遇到过类似情况吗?
由于事件是在angular之外生成的,因此我需要调用ngZone.run,以便让angular知道发生了什么事情,因此触发了更改。我这样想]
constructor(private zone: NgZone) {}
ngOnInit(){
window.addEventListener('event', (event) => {
this.ngZone.run(() => {
do stuff;
});
}