ngx-electron
is a small Module for Angular which makes calling Electron APIs from the Renderer Process
easier. By adding it to your Angular project, you'll get IntelliSense and a simple Angular service which acts as facade for Electron APIs.
ngx-electron
is licensed under MIT.
Checkout the introduction post on my blog for more details.
ngx-electron
can be installed easily using either yarn
or npm
commands in the scope of an angular project.
yarn add ngx-electron --save
# or
npm install ngx-electron --save
The NgxElectronModule
needs to be import in your root
Angular module (eg AppModule
).
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { NgxElectronModule } from 'ngx-electron';
@NgModule({
declarations: [],
imports: [
BrowserModule,
NgxElectronModule
],
bootstrap: [AppComponent]
})
export class AppModule {
}
Once the module has been imported, you can easily use dependency injection to get an instance of ElectronService
.
import { Component } from '@angular/core';
import { ElectronService } from 'ngx-electron';
@Component({
selector: 'my-app',
templateUrl: 'app.html'
})
export class AppComponent {
constructor(private _electronService: ElectronService) { }
public playPingPong() {
if(this._electronService.isElectronApp) {
let pong: string = this._electronService.ipcRenderer.sendSync('ping');
console.log(pong);
}
}
}
The ElectronService
is exposing all API's accessible from within Electron's renderer process. If your app is not running inside electron, all getters will return NULL instead.
desktopCapturer: Electron.DesktopCapturer
- Electron's desktop capturing APIipcRenderer: Electron.IpcRenderer
- Electron IpcRendererremote: Electron.Remote
- Electron Remote capabilitieswebFrame: Electron.WebFrame
- Electron WebFrameclipboard: Electron.Clipboard
- Clipboard APIcrashReporter: Electron.CrashReporter
- Electron's CrashReporterprocess: NodeJS.Process
- Electron's Process Objectscreen: Electron.Screen
- Electron's Screen APIshell: Electron.Shell
- Electron's Shell APInativeImage: Electron.NativeImage
- Electron's NativeImage APIisElectronApp: boolean
- Indicates if app is being executed inside of electron or notisMacOS: boolean
- Indicates if app is running in electron and on macOS
isWindows: boolean
- Indicates if app is running in electron and on Windows
isLinux: boolean
- Indicates if app is running in electron and on Linux
isX86: boolean
- Indicates if app is running in electron and on a x86
architectureisX64: boolean
- Indicates if app is running in electron and on a x64
architectureisArm: boolean
- Indiciates it app is running in electron adn on a ARM
architecture