3.0.0 • Published 2 years ago

nativescript-qr-generator v3.0.0

Weekly downloads
64
License
Apache-2.0
Repository
github
Last release
2 years ago

nativescript-qr-generator

NativeScript-Qr-Generator is a plugin for NativeScript which generates Qr code images.

Installation

Go to your app's root folder and execute:

ns plugin add nativescript-qr-generator

Usage

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo">

    <ActionBar title="My App" icon="" />

    <GridLayout rows="*,*,*" columns="*" class="qr-example">
        <Label row="0" col="0" text="Color and size" ></Label>
        <Image src="" row="1" col="0" loaded="{{onImageLoadedBasic}}"></Image>
    </GridLayout>
</Page>
import { Observable, ImageSource, Image } from '@nativescript/core';
import { QrGenerator } from 'nativescript-qr-generator';

export class HelloWorldModel extends Observable {
  private _counter: number
  private _message: string

  constructor() {
    super();
  }

  onImageLoadedBasic(args) {
        const image = args.object as Image;
        const result = new QrGenerator().generate(`Hello World`, {
            logo: {
                path: "~/assets/fb.png",
                ratio: {
                    w: 50, h: 50
                }
            }
        });
        image.imageSource = new ImageSource(result);
    }

    onImageLoadedColors(args) {
        const image = args.object as Image;
        const result = new QrGenerator().generate('Hello World with colors', { color: '#4183d7', backgroundColor: '#67809f' });
        image.imageSource = new ImageSource(result);
    }

    onImageLoadedColorsSize(args) {
        const image = args.object as Image;
        const result = new QrGenerator().generate('Hello World with colors and custom size', { size: { width: 100, height: 100 }, color: '#fbd90e', backgroundColor: '#0d0c0c' });
        image.imageSource = new ImageSource(result);
    }
}

Usage Angular

  import { Component } from "@angular/core";
  import { ImageSource } from "@nativescript/core";
  import { Image } from "@nativescript/core";
  import { QrGenerator } from "nativescript-qr-generator";

  @Component({
      selector: "ns-main",
      template: "<Image src="" (loaded)="onImageLoaded($event)"></Image>"
  })
  export class AppComponent {

      constructor() {} 
      
      onImageLoaded(){
          const image = args.object as Image;
          const result = new QrGenerator().generate('Hello World');
          image.imageSource = new ImageSource(result);
      }
  }

API

PropertyDefaultDescription
value-Value to generate Qr code
size.width200The image's width
size.height200The image's height
color'#000000'The Qr's color
backgroundColor'#FFFFFFF'The background's color
logononeThis new property will add your logo on top of the generated qr-code, the plugin will manage to center the logo, you may want to play with the ratio property in case of more complex qr-code
logo.pathnoneif path not set the plugin will take the appIcon as logo
logo.ratio.wnoneset the width of the logo
logo.ratio.hnoneset the height of the logo
logo.ratio.xnoneset the x cordinate to position the logo
logo.ratio.xnoneset the y cordinate to position the logo

Acknowledgements

This plugin wraps the following native Qr generators libraries:

Android: https://github.com/kenglxn/QRGen iOS: https://github.com/gscarrone/iOS-QR-Code-Generator

3.0.0

2 years ago

2.0.0

4 years ago

1.0.0

4 years ago