2016-01-17 11 views
7

die Elektronen-App geöffnet mit dem gleichen Standard-Menü, die in der Elektronen-Quick-Start-Beispiel-App erscheinen und ich weiß nicht, wie man es ändert. Ich habe auch versucht, die menu example on the docs aber nichts zu ändern. Wenn ich das Menü mit mainWindow.setMenu(null); verberge das Menü ist weg aber ich kann immer noch nicht das neue Menüändern natives Menü auf Elektronen-App

irgendwelche Ideen?

Plattform: Windows 7

Elektron ver: 0.36.4

ref Dateien:

package.json:

{ 
    "name": "electric_timer", 
    "version": "0.1.0", 
    "description": "a Time sheet & project managment", 
    "main": "app.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "none" 
    }, 
    "author": "Eyal Ron", 
    "license": "MIT" 
} 

app.js:

var app = require('app'); 
var BrowserWindow = require('browser-window'); 

app.on('ready', function(){ 
    var mainWindow = new BrowserWindow({ 
    width: 800, 
    height: 600 
    }); 
    mainWindow.setMenu(null); 
    mainWindow.loadUrl('file://' + __dirname + '/main.html'); 
}); 

main.js:

var remote = require('remote'); 
var Menu = remote.require('menu'); 

var menu = Menu.buildFromTemplate([ 
    { 
    label: 'Electron', 
    submenu: [ 
     { 
     label: 'Prefs', 
     click: function(){ 
      alert('hello menu'); 
     } 
     } 
    ] 
    } 
]); 
Menu.setApplicationMenu(menu); 

main.html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>electron test</title> 
</head> 
<body> 
    <h1>hello world</h1> 
    <script>requier('./main.js')</script> 
</body> 
</html> 

Antwort

7

Electron 'default_app' sets the menu; Wenn Sie dies vermeiden möchten, brauchen Sie Electron, um Ihre App direkt zu starten, nicht über die Standard-App (Hinweis: Wenn Sie Ihre App mit etwa electron . starten, starten Sie die Standard-App).

Elektron looks in its resource folder für 'app', 'app.asar' oder 'default_app'. Um Ihre App direkt zu starten, müssen Sie sie entweder in den Ressourcenordner von Electron kopieren oder verknüpfen.

Unabhängig davon, wie Sie Ihre App starten, können Sie Ihr Menü mit Menu.setApplicationMenu einrichten - Sie können es im Hauptprozess tun, Sie müssen es nicht im Renderer wie in Ihrem Beispiel tun. Übrigens gibt es einen Tippfehler in Ihrer main.html (Requier statt Require). Wenn das also Ihr tatsächlicher Code ist, würde dies bedeuten, dass Ihre main.js überhaupt nicht läuft.

+0

Vielen Dank für die detaillierte Antwort, half mir zu verstehen, wie es funktioniert und in der Tat war es das Tippfehler-Problem, danke –

+2

Ich denke, das ist eine großartige Erklärung, aber keine gute Antwort. Was Sie nicht beantwortet haben, ist, wie Sie Ihr Menü sehen, wenn Sie eine Electron-Anwendung entwickeln, insbesondere wie starten Sie die App direkt? – fuzzygroup

Verwandte Themen