Javascript NW.js打开一个新窗口,并在事件发生时将其关闭
我正在将我的NW.js v0.12.3迁移到新的NW.js v0.17.3。 在我以前的应用程序中,我经常打开一个窗口来显示来电通知。如果用户接听电话或挂断电话,我会根据特殊事件侦听器关闭窗口 这是我的代码,在v0.12.3中没有问题:Javascript NW.js打开一个新窗口,并在事件发生时将其关闭,javascript,node-webkit,Javascript,Node Webkit,我正在将我的NW.js v0.12.3迁移到新的NW.js v0.17.3。 在我以前的应用程序中,我经常打开一个窗口来显示来电通知。如果用户接听电话或挂断电话,我会根据特殊事件侦听器关闭窗口 这是我的代码,在v0.12.3中没有问题: var notificationWin; window.onload = function () { var messageHandler = function(event) { if(event.data.key == 'inco
var notificationWin;
window.onload = function () {
var messageHandler = function(event) {
if(event.data.key == 'incomingCall'){
win.requestAttention(1);
notificationWin = gui.Window.open('notification.html', {
frame: false,
toolbar: false,
focus: true,
icon: "app/imgs/traywinaz.png",
title:"Incoming Call"
});
notificationWin.on ('loaded', function(){
....
});
}else if(event.data.key == 'callRejected' || event.data.key == 'callAnswered' || event.data.key == 'callCanceled' ){
notificationWin.close();
}
}
window.addEventListener('message', messageHandler, false);
}
但在新版本中,我无法在呼叫被拒绝或应答事件中关闭窗口。我无法让通知窗口关闭它
我的新代码如下所示:
var messageHandler = function(event) {
if(event.data.key == 'incomingCall'){
win.requestAttention(1);
nw.Window.open('app/notification.html', {
frame: false,
focus: true,
icon: "app/imgs/traywinaz.png",
id: "callNotification"
}, function(new_notification) {
new_notification.setAlwaysOnTop(true);
new_notification.setVisibleOnAllWorkspaces(true);
new_notification.on ('loaded', function(){
....
});
});
}else if(event.data.key == 'callRejected' || event.data.key == 'callAnswered' || event.data.key == 'callCanceled' ){
try{
notificationWin = nw.Window.get('app/notification.html');
notificationWin.close();
}catch(e){
console.log(e);
}
}
};
我只能在回调中获取窗口,因此我也尝试在回调中执行类似的操作:
notificationWin = new_notification;
但这关闭了我的主窗口
有没有关于我做错了什么或者我如何才能做到这一点的想法
文档中说的是Window.get([Window\u object]),但不知道如何在新版本中获取[Window\u object]参数。回到这个问题,我通过在de callback中保存引用来解决它:“notificationWin=new\u notification;”,然后只调用notificationWin.close() 第一次尝试时,它关闭了我的主窗口,但现在起作用了:)