MagicMirror² v2.12.0 is available! For more information about this release, check out this topic.

electron.js HELP



  • Hello everyone, I did some ******* in js / electron.js, I wanted to copy lines, it didn’t work and I deleted but I did bullshit my MM doesn’t start anymore … I will give you a copy of the electron file, if you can help me please
    “use strict”;

    const electron = require(“electron”);
    const core = require(__dirname + “/app.js”);
    // Config
    var config = process.env.config ? JSON.parse(process.env.config) : {};
    // Module to control application life.
    const app = electron.app;
    // Module to create native browser window.
    const BrowserWindow = electron.BrowserWindow;

    // Keep a global reference of the window object, if you don’t, the window will
    // be closed automatically when the JavaScript object is garbage collected.

    function createWindow() {
    app.commandLine.appendSwitch(“autoplay-policy”, “no-user-gesture-required”);
    var electronOptionsDefaults = {
    width: 800,
    height: 600,
    x: 0,
    y: 0,
    darkTheme: true,
    webPreferences: {
    nodeIntegration: false,
    zoomFactor: config.zoom
    },
    backgroundColor: “#000000”
    }
    };

    // DEPRECATED: "kioskmode" backwards compatibility, to be removed
    // settings these options directly instead provides cleaner interface
    if (config.kioskmode) {
    	electronOptionsDefaults.kiosk = true;
    } else {
    	electronOptionsDefaults.fullscreen = true;
    	electronOptionsDefaults.autoHideMenuBar = true;
    }
    
    var electronOptions = Object.assign({}, electronOptionsDefaults, config.electronOptions);
    
    // Create the browser window.
    mainWindow = new BrowserWindow(electronOptions);
    
    // and load the index.html of the app.
    // If config.address is not defined or is an empty string (listening on all interfaces), connect to localhost
    var address = (config.address === void 0) | (config.address === "") ? (config.address = "localhost") : config.address;
    mainWindow.loadURL(`http://${address}:${config.port}`);
    
    // Open the DevTools if run with "npm start dev"
    if (process.argv.includes("dev")) {
    	mainWindow.webContents.openDevTools();
    }
    
    // Set responders for window events.
    mainWindow.on("closed", function() {
    	mainWindow = null;
    });
    
    if (config.kioskmode) {
    	mainWindow.on("blur", function() {
    		mainWindow.focus();
    	});
    
    	mainWindow.on("leave-full-screen", function() {
    		mainWindow.setFullScreen(true);
    	});
    
    	mainWindow.on("resize", function() {
    		setTimeout(function() {
    			mainWindow.reload();
    		}, 1000);
    	});
    }
    

    }

    // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    app.on(“ready”, function() {
    console.log(“Launching application.”);
    createWindow();
    });

    // Quit when all windows are closed.
    app.on(“window-all-closed”, function() {
    createWindow();
    });

    app.on(“activate”, function() {
    // On OS X it’s common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (mainWindow === null) {
    createWindow();
    }
    });

    /* This method will be called when SIGINT is received and will call

    • each node_helper’s stop function if it exists. Added to fix #1056
    • Note: this is only used if running Electron. Otherwise
    • core.stop() is called by process.on(“SIGINT”… in app.js
      */
      app.on(“before-quit”, (event) => {
      console.log(“Shutting down server…”);
      event.preventDefault();
      setTimeout(() => { process.exit(0); }, 3000); // Force-quit after 3 seconds.
      core.stop();
      process.exit(0);
      });

    // Start the core application if server is run on localhost
    // This starts all node helpers and starts the webserver.
    if ([“localhost”, “127.0.0.1”, “::1”, “::ffff:127.0.0.1”, undefined].indexOf(config.address) > -1) {
    core.start(function© {
    config = c;
    });
    }



  • @Manu85 u can get the original back.

    erase electron.js or rename it
    Then
    cd ~/MagicMirror
    git checkout js/electron.js



  • @sdetweil thank you very much, it restarted !!!
    I was trying to fix an error on the module of @ mykle1 which recommended the following thing:

    },
    Electron may hinder the use of autoplay. Known issue.
    This will fix it
    Edit MagicMirror/js/electron.js
    Add the line shown below
    let mainWindow;

    function createWindow() {
    app.commandLine.appendSwitch(‘autoplay-policy’, ‘no-user-gesture-required’); //< -------- added
    Save and restart MagicMirror



  • @Manu85 u don’t need that. We added it a couple releases ago



  • @sdetweil ok, the module crashes from time to time and I have a message telling me that I have an update problem (something like that) and I have a photo of the horizon with a sunset



  • @Manu85 could you be a little more specific on the error… if using pm2 to start, show the part in the output from

    pm2 logs --lines=100
    

    the line

    app.commandLine.appendSwitch(‘autoplay-policy’, ‘no-user-gesture-required’);
    

    only applies to video or audio files



  • @sdetweil you know me well 🙂



  • @sdetweil
    I don’t see this line!

    app.commandLine.appendSwitch(‘autoplay-policy’, ‘no-user-gesture-required’);



  • @Manu85 ver 2.11 direct from github

    function createWindow() {
    	app.commandLine.appendSwitch("autoplay-policy", "no-user-gesture-required");
    

    I added that in ver 2.8 last year



  • @sdetweil Thank you for your answer


Log in to reply