Skip to content

Commit

Permalink
custom protocol handling, electron/electron#40606
Browse files Browse the repository at this point in the history
  • Loading branch information
regnete committed Dec 1, 2023
1 parent 970f1a3 commit 4172569
Show file tree
Hide file tree
Showing 3 changed files with 515 additions and 423 deletions.
35 changes: 33 additions & 2 deletions bin/templates/platform_www/CordovaElectronPluginContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,25 @@ class CordovaElectronPluginConfigContext extends CordovaElectronPluginContext{
* @param {Record<string, string> | null} variables
* @param {string} scheme
* @param {string} hostname
* @param {electron.App} app
* @param {Record<string, electron.CustomScheme>} schemes
* @param {Array<string>} defaultProtocols
*/
constructor (variables, scheme, hostname, schemes) {
constructor (variables, scheme, hostname, app, schemes, defaultProtocols) {
super(variables, scheme, hostname);
this._app = app
this.schemes = schemes
this.defaultProtocols = defaultProtocols
}

/**
* @return {Electron.App}
*/
getApp(){
return this._app;
}


/**
* @param {electron.CustomScheme} customScheme
* @void
Expand All @@ -61,6 +73,16 @@ class CordovaElectronPluginConfigContext extends CordovaElectronPluginContext{
this.schemes[customScheme.scheme] = customScheme;
}

/**
*
* @param {string} scheme
* @void
*/
registerAsDefaultProtocolClient(scheme){
if(this.defaultProtocols.indexOf(scheme)<0)
this.defaultProtocols.push(scheme);
}


}
class CordovaElectronPluginInitContext extends CordovaElectronPluginContext{
Expand All @@ -71,11 +93,13 @@ class CordovaElectronPluginInitContext extends CordovaElectronPluginContext{
* @param {string} hostname
* @param {(serviceName:string)=>Promise<any>} serviceLoader
* @param {electron.BrowserWindow} mainWindow
* @param {electron.App} app
*/
constructor (variables, scheme, hostname, serviceLoader, mainWindow) {
constructor (variables, scheme, hostname, serviceLoader, mainWindow, app) {
super(variables, scheme, hostname);
this._serviceLoader = serviceLoader;
this._mainWindow = mainWindow
this._app = app
}

/**
Expand All @@ -86,6 +110,13 @@ class CordovaElectronPluginInitContext extends CordovaElectronPluginContext{
return this._serviceLoader(serviceName);
}

/**
* @return {Electron.App}
*/
getApp(){
return this._app;
}

/**
* @return {Electron.BrowserWindow}
*/
Expand Down

0 comments on commit 4172569

Please sign in to comment.