@benliam12/ngx-electron
Version:
An Angular wrapper for Electron's Renderer APIs
92 lines (68 loc) • 3.77 kB
Markdown
# ngx-electron-fresh
This package forked from [markbrutx/ngx-electron-fresh](https://github.com/markbrutx/ngx-electron-fresh)
[](https://travis-ci.org/markbrutx/ngx-electron-fresh)
[](https://github.com/semantic-release/semantic-release)
`ngx-electron` is a small Module for [Angular](http://angular.io) which makes calling [Electron](https://electronjs.org) 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](https://opensource.org/licenses/MIT).
## Introduction
Checkout the introduction post on my [blog](https://thorsten-hans.com/integrating-angular-and-electron-using-ngx-electron) for more details.
## Installation
`ngx-electron` can be installed easily using `npm` commands in the scope of an angular project.
```bash
npm install @benliam12/ngx-electron --save
```
The `NgxElectronModule` needs to be import in your `root` Angular module (eg `AppModule`).
``` typescript
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { NgxElectronModule } from '@benliam12/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`.
``` typescript
import { Component } from '@angular/core';
import { ElectronService } from '@benliam12/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);
}
}
}
```
## ElectronService
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**.
### Properties
* `desktopCapturer: Electron.DesktopCapturer` - Electron's desktop capturing API
* `ipcRenderer: Electron.IpcRenderer` - Electron IpcRenderer
* `remote: any` - Electron Remote capabilities
* `webFrame: Electron.WebFrame` - Electron WebFrame
* `clipboard: Electron.Clipboard` - Clipboard API
* `crashReporter: Electron.CrashReporter` - Electron's CrashReporter
* `process: NodeJS.Process` - Electron's Process Object
* `screen: Electron.Screen` - Electron's Screen API
* `shell: Electron.Shell` - Electron's Shell API
* `nativeImage: Electron.NativeImage` - Electron's NativeImage API
* `isElectronApp: boolean` - Indicates if app is being executed inside of electron or not
* `isMacOS: 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` architecture
* `isX64: boolean` - Indicates if app is running in electron and on a `x64` architecture
* `isArm: boolean` - Indiciates it app is running in electron adn on a `ARM` architecture