在 Electron 应用程序上处理 Squirrel 的事件
Handle Squirrel's event on an Electron app
这些天我在玩弄 Electron to build a small native app for Windows and I'm using Grunt Electron Installer 为我的应用程序创建安装程序。
安装程序已成功创建,但我不知道如何在我的应用程序中处理 Squirrel 的事件,如文档中所述,我已将其添加到我的应用程序的入口点:
var handleStartupEvent = function() {
if (process.platform !== 'win32') {
return false;
}
var squirrelCommand = process.argv[1];
switch (squirrelCommand) {
case '--squirrel-install':
case '--squirrel-updated':
// Optionally do things such as:
//
// - Install desktop and start menu shortcuts
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Always quit when done
app.quit();
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Always quit when done
app.quit();
return true;
case '--squirrel-obsolete':
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
app.quit();
return true;
}
};
if (handleStartupEvent()) {
return;
}
但我不知道在这个 switch 语句中要做什么,例如,为我的应用程序创建快捷方式。实际上,我什至不知道这个开关是否有效,因为当我安装(或卸载)我的应用程序时,它会启动并且永远不会退出。
感谢任何帮助!
您可以处理每个 Squirrel 事件并创建快捷方式:
case '--squirrel-install':
target = path.basename(process.execPath);
updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
var createShortcut = updateDotExe + ' --createShortcut=' + target + ' --shortcut-locations=Desktop,StartMenu' ;
console.log (createShortcut);
exec(createShortcut);
// Always quit when done
app.quit();
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
target = path.basename(process.execPath);
updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
var createShortcut = updateDotExe + ' --removeShortcut=' + target ;
console.log (createShortcut);
exec(createShortcut);
// Always quit when done
app.quit();
return true;
这些天我在玩弄 Electron to build a small native app for Windows and I'm using Grunt Electron Installer 为我的应用程序创建安装程序。
安装程序已成功创建,但我不知道如何在我的应用程序中处理 Squirrel 的事件,如文档中所述,我已将其添加到我的应用程序的入口点:
var handleStartupEvent = function() {
if (process.platform !== 'win32') {
return false;
}
var squirrelCommand = process.argv[1];
switch (squirrelCommand) {
case '--squirrel-install':
case '--squirrel-updated':
// Optionally do things such as:
//
// - Install desktop and start menu shortcuts
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Always quit when done
app.quit();
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Always quit when done
app.quit();
return true;
case '--squirrel-obsolete':
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
app.quit();
return true;
}
};
if (handleStartupEvent()) {
return;
}
但我不知道在这个 switch 语句中要做什么,例如,为我的应用程序创建快捷方式。实际上,我什至不知道这个开关是否有效,因为当我安装(或卸载)我的应用程序时,它会启动并且永远不会退出。
感谢任何帮助!
您可以处理每个 Squirrel 事件并创建快捷方式:
case '--squirrel-install':
target = path.basename(process.execPath);
updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
var createShortcut = updateDotExe + ' --createShortcut=' + target + ' --shortcut-locations=Desktop,StartMenu' ;
console.log (createShortcut);
exec(createShortcut);
// Always quit when done
app.quit();
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
target = path.basename(process.execPath);
updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
var createShortcut = updateDotExe + ' --removeShortcut=' + target ;
console.log (createShortcut);
exec(createShortcut);
// Always quit when done
app.quit();
return true;