如何在 Node Webkit 中 windows 之间共享数据?
How to share data between windows in Node Webkit?
我正在使用 node webkit v0.45,我需要打开一个带有动态参数的新 window(具有预先确定的 html 布局)。
我能找到的唯一文档建议使用 on“loaded”事件将数据发送到新 window,然后处理在新 window 中使用 on“data”接收到的数据] html,如下:
主要window:
var ngui = require('nw.gui');
var newWindow = ngui.Window.open('newwindow.html', {
width: 1120,
height: 360
})
newWindow.on ('loaded', function(){
var data = {msg: "test"};
newWindow.emit("data", data);
});
新 window:
var gui = require('nw.gui');
var win = gui.Window.get();
win.on("data", function(data) {
console.log(data.msg);
});
但是,在 v0.13 之后似乎已弃用并且 Window class 不再继承自 EventEmitter。 windows带参数打开还有其他选项吗?
*** 更新 ***
以下代码将在新的 window 打开时起作用:
var param = 'param';
ngui.Window.open('newWindow.html', {
width: 1120,
height: 360,
}, function(newWindow) {
pageWindow.on('loaded', () => {
newWindow.window.param = param;
});
});
在 newWindow.html 中:
<script>
function getParam(){
if (!window.param){
setTimeout(function(){
getParam();
},50);
} else {
console.log("Successfully loaded param: '" + window.param + "'");
}
}
getParam();
</script>
节点上下文可用于共享数据,因为节点上下文在 windows 之间共享。
我正在使用 node webkit v0.45,我需要打开一个带有动态参数的新 window(具有预先确定的 html 布局)。
我能找到的唯一文档建议使用 on“loaded”事件将数据发送到新 window,然后处理在新 window 中使用 on“data”接收到的数据] html,如下:
主要window:
var ngui = require('nw.gui');
var newWindow = ngui.Window.open('newwindow.html', {
width: 1120,
height: 360
})
newWindow.on ('loaded', function(){
var data = {msg: "test"};
newWindow.emit("data", data);
});
新 window:
var gui = require('nw.gui');
var win = gui.Window.get();
win.on("data", function(data) {
console.log(data.msg);
});
但是,在 v0.13 之后似乎已弃用并且 Window class 不再继承自 EventEmitter。 windows带参数打开还有其他选项吗?
*** 更新 ***
以下代码将在新的 window 打开时起作用:
var param = 'param';
ngui.Window.open('newWindow.html', {
width: 1120,
height: 360,
}, function(newWindow) {
pageWindow.on('loaded', () => {
newWindow.window.param = param;
});
});
在 newWindow.html 中:
<script>
function getParam(){
if (!window.param){
setTimeout(function(){
getParam();
},50);
} else {
console.log("Successfully loaded param: '" + window.param + "'");
}
}
getParam();
</script>
节点上下文可用于共享数据,因为节点上下文在 windows 之间共享。