Problème avec electron

Tom -  
 Tom -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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
Tom
 
merci beaucoup, je suis vraiment confus, ces erreurs sont stupides et j'auraient pu les remarquer avant ton intervention.
Merci quand même
0
Tom
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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