How to close electron app via javascript?

49,758

Solution 1

you can use

const remote = require('electron').remote
let w = remote.getCurrentWindow()
w.close()

to close your app.

if you are using jQuery

const remote = require('electron').remote
$('#close-btn').on('click', e => {
    remote.getCurrentWindow().close()
})

if you are using Vue.js

<template>
    <button @click="close"><i class="fa fa-cube" aria-hidden="true"></i>&nbsp; Close application</button>
</template>

<script>
    const remote = require('electron').remote

    export default{
        data(){
            return {
                w: remote.getCurrentWindow(),
            }
        },
        methods: {
            close() {
                this.w.close()
            }
        }
    }
</script>

Solution 2

I use the line below to close the app.

window.close()

Solution 3

You can also use app.exit:

app.exit(0)

This seems to bypass any event listeners and force the whole app to exit immediately. (Be sure that is what you want though!)

Share:
49,758
code_legend
Author by

code_legend

Updated on October 04, 2021

Comments

  • code_legend
    code_legend over 2 years

    I am running an express app via electron.

    Below is the main.js

       const electron = require("electron"),
              app = electron.app,
              BrowserWindow = electron.BrowserWindow;
    
        let mainWindow;
    
        function createWindow () {
          mainWindow = new BrowserWindow({
              width: 1200,
            height: 800,
            frame: false,
            kiosk: true
          });
          mainWindow.loadURL(`file://${__dirname}/index.html`)
         mainWindow.webContents.openDevTools();
    
          mainWindow.on("closed", function () {
            mainWindow = null;
          })
        }
    
        app.on("ready", createWindow);
        app.on("browser-window-created",function(e,window) {
          window.setMenu(null);
        });
    
        app.on("window-all-closed", function () {
          if (process.platform !== "darwin") {
            app.quit();
          }
        });
    
    
    
        app.on("activate", function () {
          if (mainWindow === null) {
            createWindow();
          }
        });
    

    and below is a button in the view that upon click i would like it to close the app

    <button id="close-btn"><i class="fa fa-cube" aria-hidden="true"></i>&nbsp; Close application</button>
    

    Essentially I want to activate this part of the code once the button has been clicked

      app.on("window-all-closed", function () {
              if (process.platform !== "darwin") {
                app.quit();
              }
            });