2015-05-07 2 views
4

В эти дни я собираюсь с Electron, чтобы создать небольшое родное приложение для Windows, и я использую Grunt Electron Installer для создания установщика для моего приложения.Событие Handle Squirrel в приложении Electron

Установщик создан успешно, но я не знаю, как ха ручка событие Белка внутри моего приложения, как указано в документации, я добавил это к точке входа моего приложения:

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, например, для создания ярлыков для моего приложения. На самом деле, я даже не знаю, работает ли этот коммутатор вообще, потому что когда я устанавливаю (или удаляю) мое приложение, оно запускается и никогда не уходит.

Любая помощь приветствуется!

ответ

6

Вы можете обрабатывать каждое событие Белка и создавать ярлыки:

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;

+0

Спасибо, теперь я могу видеть правильно ярлыки на рабочем столе и меню Пуск. Если бы я мог спросить, где вы нашли эти команды? Я смотрел в Squirrell для документов Windows и не нашел ничего полезного ... – Ingro

+1

Я только что вызвал Update.exe из командной строки, чтобы увидеть все поддерживаемые команды. – user2382793

+0

Спасибо за информацию! – Ingro

Смежные вопросы