ディープリンク
概要
このガイドでは、Electron アプリを特定の protocol のデフォルトハンドラとして設定する手順を説明します。
このチュートリアルを終える頃には、特定のプロトコルで始まる URL がクリックされた場合、アプリがそれに干渉してハンドリングするように設定できます。 このガイドでは、使用するプロトコルを "electron-fiddle://
" とします。
サンプル
メインプロセス (main.js)
最初に、electron
から必要なモジュールをインポートします。 これらのモジュールは、アプリケーションのライフサイクルの制御と、ネイティブなブラウザウインドウの作成を助けます。
const { app, BrowserWindow, shell } = require('electron')
const path = require('node:path')
次に、"electron-fiddle://
" プロトコルをすべて処理するために、アプリケーションを登録します。
if (process.defaultApp) {
if (process.argv.length >= 2) {
app.setAsDefaultProtocolClient('electron-fiddle', process.execPath, [path.resolve(process.argv[1])])
}
} else {
app.setAsDefaultProtocolClient('electron-fiddle')
}
ここで、ブラウザのウインドウを作成し、アプリケーションの index.html
ファイルを読み込む関数を定義します。
let mainWindow
const createWindow = () => {
// ブラウザウィンドウを作成します。
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
mainWindow.loadFile('index.html')
}
この次のステップで、BrowserWindow
を作成し、外部プロトコルがクリックされたイベントの処理方法をアプリケーションに伝えます。
Windows と Linux でのこのコードは、macOS と異なります。 これは、両プラットフォームが open-url
イベントではなく second-instance
イベントを発生させるからです。Windows が同じ Electron インスタンス内でプロトコルリンクの内容を開くためには、追加のコードが必要になります。 この詳細については、こちら をお読みください。