2016-09-06 83 views
0

我的應用程序是一個瀏覽器窗口加載本地頁面index.html電子。
我打電話給「npm run start」腳本運行「electron main.js」,應用程序打開並載入html。
我可以添加一個參數給腳本,將不同的html文件加載到BrowserWindow中?如何使用參數運行電子應用程序?

在main.js文件中的代碼是:

function createWindow() { 
 
    // Create the browser window. 
 
    mainWindow = new BrowserWindow({ 
 
    webPreferences:{ 
 
     webSecurity:false 
 
    }, 
 
    fullscreen : false });//, alwaysOnTop : true , kiosk : true }) 
 
    mainWindow.setMenu(null); 
 
    // and load the index.html of the app. 
 
    let url = `file://${__dirname}/index.html`; \\ index.html should be determined by argument passed at start. 
 
    mainWindow.loadURL(url,loadOptions); 
 

 
    // Open the DevTools. 
 
    mainWindow.webContents.openDevTools(); 
 

 
    // Emitted when the window is closed. 
 
    mainWindow.on('closed', function() { 
 
    // Dereference the window object, usually you would store windows 
 
    // in an array if your app supports multi windows, this is the time 
 
    // when you should delete the corresponding element. 
 
    mainWindow = null; 
 
    }); 
 
}

+1

是'process.argv'不填充? –

+0

是的,但我如何傳遞我的參數,如-html = index2.html –

回答

2

傳遞參數的方式將是一樣的,你要照顧的唯一事情就是電子的路徑。在package.json其書面npm開始將執行electron main.js。所以你必須明確地執行這個命令並且傳遞「正確的電子路徑」參數,即./node_modules/.bin/electron。那麼該命令將

./node_modules/.bin/electron main.js argv1 argv2 

和這些參數可以通過process.argvmain.js

訪問。如果希望您能夠在您的應用程序訪問這些參數則有以下事情要做:

1 。在你的main.js這樣定義

 global.sharedObject = {prop1: process.argv} 
可變

2.In您的應用程序只包括遠程和使用本sharedObject

var remote = require('electron').remote, 
     arguments = remote.getGlobal('sharedObject').prop1; 

    console.log(arguments); 

3.輸出將["argv1", "argv2"]

來源:https://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247

相關問題