का उपयोग कर डेस्कटॉप एप्लिकेशन में विंडो बंद फ़ंक्शन तक नहीं पहुंच सकता है मैं node.js और backbone.js का उपयोग कर एक विंडोज डेस्कटॉप एप्लिकेशन विकसित कर रहा हूं। जब मैं टाइटल बार पर बंद बटन पर क्लिक करके या विंडोज टास्कबार से एप्लिकेशन पर राइट क्लिक करके ऐप बंद कर देता हूं तो मैं एक क्रिया करना चाहता हूं।नोड जेएस
मेरे app.js इस तरह दिखता है,
var app = module.exports = require('appjs');
app.serveFilesFrom(__dirname + '/content/assets/');
var menubar = app.createMenu([ {
label : '&File',
submenu : [ {
label : 'E&xit',
action : function() {
window.close();
}
},{
label : 'New',
action : function() {
window.test();
}
} ]
}, {
label : '&Window',
submenu : [ {
label : 'Fullscreen',
action : function(item) {
window.frame.fullscreen();
console.log(item.label + " called.");
}
}, {
label : 'Minimize',
action : function() {
console.log("df");
window.frame.minimize();
}
}, {
label : 'Maximize',
action : function() {
console.log("nnnnnnlaaaaaaaaaaaaaaa");
window.frame.maximize();
}
}, {
label : ''// separator
}, {
label : 'Restore',
action : function() {
window.frame.restore();
}
} ]
} ]);
menubar.on('select', function(item) {
console.log("menu item " + item.label + " clicked");
});
var trayMenu = app.createMenu([ {
label : 'Show',
action : function() {
window.frame.show();
},
}, {
label : 'Minimize',
action : function() {
window.frame.hide();
}
}, {
label : 'Exit',
action : function() {
window.close();
}
} ]);
var statusIcon = app.createStatusIcon({
icon : './data/content/icons/32.png',
tooltip : 'AppJS Hello World',
menu : trayMenu
});
var window = app.createWindow({
width : 1024,// 640
height : 768,
showChrome: true,
icons : __dirname + '/content/icons'
});
window.on('create', function() {
console.log("Window Created");
window.frame.show();
window.frame.center();
window.frame.maximize();
window.frame.setMenuBar(menubar);
});
window.on('ready', function() {
console.log("Window Ready");
window.require = require;
window.process = process;
window.module = module;
//window.frame.openDevTools();
window.fileAssoc = process.mainModule.filename;
//window.readMyFile();
function F12(e) {
return e.keyIdentifier === 'F12'
}
function Command_Option_J(e) {
return e.keyCode === 74 && e.metaKey && e.altKey
}
});*/
window.addEventListener('keydown', function(e) {
console.log("hi");
if (F12(e) || Command_Option_J(e)) {
window.frame.openDevTools();
}
});
});
कृपया संलग्न स्क्रीनशॉट पाते हैं। मैं "फ़ाइल" & "विंडोज" के अंदर कस्टम अतिरिक्त कार्यक्षमताओं पर कार्रवाई करने में सक्षम हूं।
लेकिन मुझे नहीं पता कि घटना को कैप्चर करना है जब शीर्षक बार में डिफ़ॉल्ट ऐप बंद बटन को विंडोज़ टास्क बार से एप्लिकेशन पर राइट क्लिक करके क्लिक या बंद किया जाता है। कृपया मदद करे।
var gui = require("nw.gui");
var win_main = gui.Window.get();
win_main.on('close', function() {
this.hide(); // Pretend to be closed already
alert("Closing...");
// here you detect if data is saved, and if not, ask user if they want to save
this.close(true); // if this line executes the app closes, if not,
// app stays opened
});
अग्रिम धन्यवाद
क्या यह वह ईवेंट है जिसे आप ढूंढ रहे हैं: https://msdn.microsoft.com/en-us/library/system.windows.forms.form.closing(v=vs.110).aspx – LGSon
हां, पहला मैं वही हूं जो मैं ढूंढ रहा हूं। लेकिन मुझे नहीं पता कि जावास्क्रिप्ट (नोड जेएस) का उपयोग कर विंडो बंद घटना कैसे प्राप्त करें। –