Electron

Electron で Open Links In Background

More than 3 years have passed since last update.

qiita.gif

TweetBot for Mac にある Open Links In Background を Electron で実装したかった。
これはアプリを最前面に維持しつつURLリンクを開く機能で、とりあえずURL開きまくって後でまとめて見たい時に便利。
実装方法としては、shell.openExternal で URL を開いた直後に window.setAlwaysOnTop(true) でウィンドウをトップに持って行き、直後window.setAlwaysOnTop(false)で状態を戻します。
以下コード。(他にいい方法あったら教えてください)

MainProcess

var ipc = require('ipc');

let window = new BrowserWindow({
  width: 600,
  height: 800,
  'always-on-top': false,
});
window.loadUrl(`file://${__dirname}/../index.html`);

ipc.on('pullToTop', () => {
  window.setAlwaysOnTop(true);
  setTimeout(() => { this.window.setAlwaysOnTop(false) }, 1000); // 1000ms より短すぎるとウィンドウが全面に来なくて微妙...
});
RendererProcess
var ipc = require('ipc');

$(document).on('click', 'a', function() {
  shell.openExternal(this.href);
  ipc.send('pullToTop');
  return false;
});