Electronでコマンドライン引数を取得してRenderProcess受け渡す簡単な方法
はじめに
ElectronにおけるBrowserWindowオブジェクトのloadURLには、index.htmlのように通常ファイル名を代入しますが、必ずしもファイル名である必要は無く、index.html#hoge01(アンカー)や、index.html?hoge=01(GET引数)を代入することも可能です。
したがって、単にコマンドラインから受け取った引数をRenderProcessに受け渡すだけであれば、プロセス間通信を行う必要はありません。
以下のサンプルコードは、「electron . --arg=01」のように--argというコマンドライン引数に01が代入されていた場合に、index.html#arg01というURLをloadURLに代入しています。
サンプルコード
'use strict'; var app = require('app'); var BrowserWindow = require('browser-window'); var mainWindow = null; var url = null; var ref = null; app.on('window-all-closed', function() { if (process.platform != 'darwin') { app.quit(); } }); app.on('ready', function() { url = 'file://' + __dirname + '/index.html'; ref = ''; for (var i = 0; i < 20; i++) { if (process.argv[i] !== undefined) { if (process.argv[i].indexOf("--arg=") != -1) { ref = process.argv[i].replace("--arg=",""); url = url + '#arg' + ref; } } } mainWindow = new BrowserWindow({width: 800, height: 600}); mainWindow.loadURL(url); mainWindow.on('closed', function() { mainWindow = null; }); });