Electron has evolved quite a bit since this question was first published.
You no longer need to dive so deep that you can skip the Electron protocol API. Instead, use the app.setAsDefaultProtocolClient(protocol[, path, args]) interface and its siblings app.removeAsDefaultProtocolClient(protocol[, path, args]) and app.isDefaultProtocolClient(protocol[, path, args]) .
They allow you to register the protocol identifier your-protocol:// and get the arguments:
The entire link, including the protocol, will be passed to your application as a parameter. Electronic API Documents
Jens habegger
source share