LoginSignup
11

More than 5 years have passed since last update.

Electronでコマンドライン引数を取得してRenderProcess受け渡す簡単な方法

Last updated at Posted at 2016-02-02

はじめに

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;
  });
});

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11