gpt4 book ai didi

javascript - NW.js 打开一个新窗口并在发生事件时关闭它

转载 作者:行者123 更新时间:2023-12-02 17:25:40 32 4
gpt4 key购买 nike

我正在将 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 == '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;

但这会关闭我的主窗口。

关于我做错了什么或者如何实现这一目标有什么想法吗?

文档 http://docs.nwjs.io/en/latest/References/Window/#windowgetwindow_object说 Window.get([window_object]) 但不知道如何在新版本中获取 [window_object] 参数。

最佳答案

回到这一点,我通过将引用保存在回调中解决了这个问题:“notificationWin = new_notification;”然后只需调用 notificationWin.close();

我第一次尝试这个时,它关闭了我的主窗口,但现在可以工作了:)

关于javascript - NW.js 打开一个新窗口并在发生事件时关闭它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39578613/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com