Problème avec electron

Fermé
Tom - 20 mars 2020 à 16:56
 Tom - 21 mars 2020 à 10:49
Bonjour,
j'ai voulu creer une application en js/html/css avec electron.
Mais voila, j'ai rencontré le problème suivant : les scripts placés dans mon Index.html ne fonctionne pas ainsi que ipc.

voici mon main.js :
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;



let mainWindow;

function createWindow () {

  mainWindow = new BrowserWindow({
      width: 800,
      height: 600,
      icon: './images/main.png',
      title: 'Yellow-submarine',
      closable: false,
      movable: false,
      frame: true,
      center: true
  });

  mainWindow.loadURL(`file://${__dirname}/index.html`);

  mainWindow.on('closed', () => {
    mainWindow = null;
  })
}

app.on('ready', createWindow);
app.setAppUserModelId(process.execPath)

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

app.on('activate', () => {
  if (mainWindow === null) {
    createWindow();
  }
});
// Les requires du début …

const ipc = electron.ipcMain;

// Le reste de notre code (ouverture de fenêtre, etc) …

ipc.on('log-error', () => {
    remote.dialog.showErrorBox('Erreur !', 'L\'application a rencontré une erreur. Votre ordinateur va s\'auto-détruire dans 10 secondes.');
});

mon index.html:
<!DOCTYPE html>
<html>
   <head>
      <meta charset = "UTF-8">
      <title>Yellow Submarine</title>
      <link rel = "stylesheet"
         href = "./bower_components/bootstrap/dist/css/bootstrap.min.css" />

      <style type = "text/css">
         #contact-list {
            height: 150px;
            overflow-y: auto;
         }
      </style>
   </head>

   <body>
      <div class = "container">
         <h1>Connection :</h1>
         <div class = "form-group">
            <label for = "Name">Name</label>
            <input type = "text" name = "Name" value = "" id = "Name"
               placeholder = "Name" class = "form-control" required>
         </div>

         <div class = "form-group">
            <label for = "Email">Email</label>
            <input type = "email" name = "Email" value = "" id = "Email"
               placeholder = "Email" class = "form-control" required>
         </div>

         <div class = "form-group">
            <button class = "btn btn-primary" id = "connect">Connect</button>
            <button class = "btn btn-success" id = "register">Register</button>
         </div>
           <button class = "btn btn-primary"  id = "ipc">Error</button>

      </div>

      <script src = ./renderer.js></script>
   </body>
</html>

et mon renderer.js :
let launch = new Notification('Application-Lancé', {
  body: 'application lancée',
  icon: './images/notif.png'
})
const ipc = require('electron').ipcRenderer;

document.getElementById('ipc').addEventListener('click', () => {
    ipc.send('log-error');
});

merci d'avance ! j'espère que vous trouverez la solution a mon problème.



Configuration: Windows / Chrome 80.0.3987.149
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 mars 2020 à 19:29
Bonjour,

Pour commencer :
  <script src = ./renderer.js></script>

Avec des Quotes ça sera déjà mieux je pense
  <script src="./renderer.js"></script>


Et dans ton js, je ne crois pas que les backquotes soient bonnes... à mon avis, il faut des quotes normales
 mainWindow.loadURL(`file://${__dirname}/index.html`);

A remplacer par
 mainWindow.loadURL('file://${__dirname}/index.html');


Après... regarde dans la console de ton navigateur si tu vois des erreurs...
0
merci beaucoup, je suis vraiment confus, ces erreurs sont stupides et j'auraient pu les remarquer avant ton intervention.
Merci quand même
0
Je crois que rien n'y fait, ça ne marche toujours pas, si quelq'un a la solution a mon problème je suis preneur...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 mars 2020 à 21:20
Comme je te l'ai indiqué... regarde dans la console Javascript de ton navigateur si il y a des erreurs....

Par contre, en lisant la doc https://www.electronjs.org/docs/api/browser-window je vois que les backquotes sont bien à utiliser dans ton cas
win.loadURL(`file://${__dirname}/app/index.html`)
0
Tom > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
21 mars 2020 à 10:49
J'ai essayé de regarder dans la console js de mon naviguateur, mais cela affiche que les erreurs liées au fait que mon programme est en node.js et non en js.
0