@moukail/angular-qrcode
v9.0.0
Published
Simple QRCode module generator for Angular9+
Downloads
3
Maintainers
Readme
angularx-qrcode
angularx-qrcode
is a fast and easy-to-use Ionic 3 and Angular4-9 QR Code component/module library to generate QR Codes (Quick Response) in your Ionic and Angular 4/5/6/7/8/9 app with support for AOT. It is a drop-in replacement for the no-longer-maintained angular2 component ng2-qrcode
and based on node-qrcode.
Demo App
An Angular app with a working implementation of angularx-qrcode is available on github.com/Cordobo/angularx-qrcode-sample-app.
Install angularx-qrcode 2.x with Angular 6/7/8/9
# Angular 6/7/8/9 and Ionic
npm install angularx-qrcode --save
# Or use yarn
yarn add angularx-qrcode
Older Angular Versions
# Angular 5
npm install [email protected] --save
# Angular 4
npm install [email protected] --save
New in angularx-qrcode 2.x
angularx-qrcode is now based on node-qrcode and as a result ships a couple of new features (keeping all the known features)
- Add your CSS class with
cssClass
- New
elementType
field:url
,img
andcanvas
- New
margin
field. Define how much wide the quiet zone should be. - New
scale
, scale factor. A value of 1 means 1px per modules (black dots). - New
version
field. QR Code version. If not specified the more suitable value will be calculated.
Upgrade from 1.x to 2.x
Upgrading should be simple. If any field you use, angularx-qrcode logs warnings to your browser console, telling you which fields should be renamed.
Old code in 1.x
<qrcode [qrdata]="'Your data'" [size]="256" [level]="'M'"></qrcode>
New code in 2.x
<qrcode [qrdata]="'Your data'" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>
| Deprecated | New | | -----------|-------------| | colordark | colorDark | | colorlight | colorLight | | level | errorCorrectionLevel | | size | width | | usesvg | elementType |
Basic Usage
Import the module and add it to your imports section in your main AppModule:
// File: app.module.ts
// all your imports
import { QRCodeModule } from 'angularx-qrcode';
@NgModule({
declarations: [
AppComponent
],
imports: [
QRCodeModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Examples: How to implement angularx-qrcode
Generate a QR Code from a string (directive only)
Now that Angular/Ionic knows about the new QR Code module, let's invoke it from our template with a directive. If we use a simple text-string, we need no additional code in our controller.
<qrcode [qrdata]="'Your data string'" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>
Create a QR Code from a variable in your controller
In addition to our <qrcode>
-directive in example.html
,
lets add two lines of code to our controller example.ts
.
// File: example.ts
export class QRCodeComponent {
public myAngularxQrCode: string = null;
constructor () {
// assign a value
this.myAngularxQrCode = 'Your QR code data string';
}
}
// File: example.html
<qrcode [qrdata]="myAngularxQrCode" [width]="256" [errorCorrectionLevel]="'M'"></qrcode>
Parameters
| Attribute | Type | Default | Description | | ------------- |-------------| -----|------------| | allowEmptyString | Boolean | false | Allow empty string | | colorDark | String | '#000000ff' | RGBA color, color of dark module | | colorLight | String | '#ffffffff' | RGBA color, color of light module | | cssClass | String | 'qrcode' | CSS Class | | elementType | String | 'canvas' | 'url', 'img' or 'canvas' | | errorCorrectionLevel | String | 'M' | QR Correction level ('L', 'M', 'Q', 'H') | | margin | Number | 4 | Define how much wide the quiet zone should be. | | qrdata | String | '' | String to encode | | scale | Number | 4 | Scale factor. A value of 1 means 1px per modules (black dots). | | version | Number | (auto) | 1-40 | | width | Number | 10 | Height/Width (any value) |
| Deprecated | | | New value | | ------------- |-------------| -----|------------| | colordark | String | '#000000' | colorDark | | colorlight | String | '#ffffff' | colorLight | | level | String | 'M' | errorCorrectionLevel | | size | Number | 256 | width | | usesvg | Boolean | false | elementType |
Note
Depending on the amount of data of the qrdata to encode, a minimum width is required.
AOT - Ahead Of Time Compilation
angularx-qrcode
supports AOT Compilation (Ahead-of-Time Compilation) which results in significant faster rendering. An AOT-enabled module is included. Further reading: https://angular.io/guide/aot-compiler
SSR - Server Side Rendering
As of version 1.6.0, SSR support is fully implemented, the following workaround is no longer needed. HowTo use Angular QRCode with SSR
Available commands
# Build
npm run build
Contribution
- Please open your PR against the development branch.
- Make sure your editor uses the packages .editorconfig file to minimioze commited code changes.
- Use
npm run lint
before you commit
License
MIT License
Copyright (c) 2018 - present Andreas Jacob (Cordobo.com)