app
module provides methods for handling protocols.These methods allow you to set and unset the protocols your app should be the default app for. Similar to when a browser asks to be your default for viewing web pages.
Open the full app API documentation(opens in new window) in your browser.
You can set your app as the default app to open for a specific protocol. For instance, in this demo we set this app as the default for electron-api-demos://
. The demo button above will launch a page in your default browser with a link. Click that link and it will re-launch this app.
This feature will only work on macOS when your app is packaged. It will not work when you're launching it in development from the command-line. When you package your app you'll need to make sure the macOS plist
for the app is updated to include the new protocol handler. If you're using electron-packager
then you can add the flag --extend-info
with a path to the plist
you've created. The one for this app is below.
const {shell} = require('electron')
const path = require('path')
const protocolHandlerBtn = document.getElementById('protocol-handler')
protocolHandlerBtn.addEventListener('click', () => {
const pageDirectory = __dirname.replace('app.asar', 'app.asar.unpacked')
const pagePath = path.join('file://', pageDirectory, '../../sections/system/protocol-link.html')
shell.openExternal(pagePath)
})
const {app, dialog} = require('electron')
const path = require('path')
if (process.defaultApp) {
if (process.argv.length >= 2) {
app.setAsDefaultProtocolClient('electron-api-demos', process.execPath, [path.resolve(process.argv[1])])
}
} else {
app.setAsDefaultProtocolClient('electron-api-demos')
}
app.on('open-url', (event, url) => {
dialog.showErrorBox('Welcome Back', `You arrived from: ${url}`)
})
CFBundleURLTypes
CFBundleURLSchemes
electron-api-demos
CFBundleURLName
Electron API Demos Protocol
ElectronTeamID
VEKTX9H2N7