각도 바코드 QR 코드 스캔 라이브러리를 만드는 방법
26670 단어 angulartypescriptqrcodewebdev
ngx-바코드-qrcode-sdk 다운로드
https://www.npmjs.com/package/ngx-barcode-qrcode-sdk
npm i ngx-barcode-qrcode-sdk
Dynamsoft JavaScript SDK용 Angular 라이브러리를 생성하는 단계
official Angular tutorial은 Angular 응용 프로그램을 포함하지 않고 새 작업 공간에서 새 라이브러리 골격을 생성하도록 안내합니다.
ng new my-workspace --no-create-application
cd my-workspace
ng generate library my-lib
그러나 Angular 라이브러리를 편리하게 개발하고 디버그하려면 Angular 애플리케이션에서 라이브러리 프로젝트를 스캐폴딩하는 것이 좋습니다.
우리의 목표는 Angular
Barcode Reader
및 Barcode Scanner
구성 요소를 기존 Angular 바코드 QR 코드 스캐너 애플리케이션에서 Angular 라이브러리로 마이그레이션하는 것입니다. 따라서 소스 코드를 가져오고 다음과 같이 라이브러리 프로젝트를 생성합니다.git clone https://github.com/yushulx/angular-barcode-qr-code-scanner.git
cd angular-barcode-qr-code-scanner
ng generate library ngx-barcode-qrcode-sdk
그런 다음
barcode-reader
및 barcode-scanner
폴더를 projects/ngx-barcode-qrcode-sdk/src/lib
에 복사합니다. Angular 라이브러리 명명 규칙에 따라 폴더 이름을 ngx-barcode-reader
및 ngx-barcode-scanner
로 바꿉니다.Angular 라이브러리에서 Dynamsoft JavaScript SDK에 액세스하려면
package.json
에서 피어 종속성으로 추가해야 합니다."peerDependencies": {
...
"dynamsoft-javascript-barcode": "^9.0.2"
},
Angular 라이브러리는 서비스, 구성 요소 및 모듈로 구성됩니다.
public-api.ts
파일을 열어 라이브러리의 API를 내보냅니다.export * from './lib/ngx-barcode-qrcode-sdk.service';
export * from './lib/ngx-barcode-reader/ngx-barcode-reader.component';
export * from './lib/ngx-barcode-scanner/ngx-barcode-scanner.component';
export * from './lib/ngx-barcode-qrcode-sdk.module';
모듈은 라이브러리의 진입점입니다.
ngx-barcode-qrcode-sdk.module.ts
에서는 Angular 구성 요소를 선언하고 Angular 서비스를 사용하여 Dynamsoft JavaScript Barcode SDK의 전역 구성을 저장합니다.import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
import { NgxBarcodeReaderComponent } from './ngx-barcode-reader/ngx-barcode-reader.component';
import { NgxBarcodeScannerComponent } from './ngx-barcode-scanner/ngx-barcode-scanner.component';
import { BarcodeQrcodeSdkServiceConfig } from './ngx-barcode-qrcode-sdk.service';
@NgModule({
declarations: [
NgxBarcodeReaderComponent,
NgxBarcodeScannerComponent,
],
imports: [
],
exports: [
NgxBarcodeReaderComponent,
NgxBarcodeScannerComponent,
]
})
export class NgxBarcodeQrcodeSdkModule {
constructor(@Optional() @SkipSelf() parentModule?: NgxBarcodeQrcodeSdkModule) {
if (parentModule) {
throw new Error(
'GreetingModule is already loaded. Import it in the AppModule only');
}
}
static forRoot(config: BarcodeQrcodeSdkServiceConfig): ModuleWithProviders<NgxBarcodeQrcodeSdkModule> {
return {
ngModule: NgxBarcodeQrcodeSdkModule,
providers: [
{ provide: BarcodeQrcodeSdkServiceConfig, useValue: config }
]
};
}
}
구성에는
ngx-barcode-qrcode-sdk.service.ts
에 정의된 라이센스 키와 리소스 경로가 포함됩니다.import { Injectable, Optional } from '@angular/core';
import { BarcodeReader } from 'dynamsoft-javascript-barcode';
export class BarcodeQrcodeSdkServiceConfig {
licenseKey = '';
resourcePath = '';
}
@Injectable({
providedIn: 'root'
})
export class NgxBarcodeQrcodeSdkService {
constructor(@Optional() config?: BarcodeQrcodeSdkServiceConfig) {
if (config) {
BarcodeReader.license = config.licenseKey;
BarcodeReader.engineResourcePath = config.resourcePath;
}
}
}
ngx-barcode-reader
데코레이터를 추가하는 것 외에 두 개의 ngx-barcode-scanner
및 @Output()
구성 요소에 대해 더 이상 할 일이 없습니다. 그러면 디코딩 결과가 하위 구성 요소에서 상위 구성 요소로 흐를 수 있습니다.바코드 판독기
export class NgxBarcodeReaderComponent implements OnInit {
@Output() result = new EventEmitter<string>();
...
this.reader.decode(file).then((results: any) => {
console.log(results);
let txts: any = [];
try {
let localization;
if (results.length > 0) {
for (var i = 0; i < results.length; ++i) {
txts.push(results[i].barcodeText);
localization = results[i].localizationResult;
this.overlayManager.drawOverlay(
localization,
results[i].barcodeText
);
}
this.result.emit(txts.join(', '));
} else {
this.result.emit(txts.join(', '));
}
} catch (e) {
alert(e);
}
});
...
}
바코드 스캐너
export class NgxBarcodeScannerComponent implements OnInit {
@Output() result = new EventEmitter<string>();
...
this.scanner.onFrameRead = results => {
...
let txts: any = [];
try {
let localization;
if (results.length > 0) {
for (var i = 0; i < results.length; ++i) {
txts.push(results[i].barcodeText);
localization = results[i].localizationResult;
this.overlayManager.drawOverlay(localization, results[i].barcodeText);
}
this.result.emit(txts.join(', '));
}
else {
this.result.emit(txts.join(', '));
}
} catch (e) {
alert(e);
}
};
...
}
지금까지 Angular 바코드 QR 코드 스캔 라이브러리가 완료되었습니다. 다음 섹션에서는 Angular 애플리케이션에서 라이브러리를 사용하는 방법을 살펴봅니다.
라이브러리로 각도 바코드 QR 코드 스캐너를 구축하는 방법
모든 무거운 작업을 라이브러리로 옮겼기 때문에 Angular 바코드 QR 코드 스캐너 구축이 훨씬 간단해졌습니다.
Angular 애플리케이션 작업 공간에서 터미널의 npm 명령을 통해 Angular 라이브러리를 설치합니다.
npm i ngx-barcode-qrcode-sdk
설치가 완료되면
angular.json
파일에서 리소스 경로를 구성해야 합니다."build": {
"builder": "@angular-devkit/build-angular:browser",
...
"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "**/*",
"input": "./node_modules/dynamsoft-javascript-barcode/dist",
"output": "assets/dynamsoft-javascript-barcode"
}
],
...
}
app.module.ts
파일에서 라이브러리를 가져옵니다.import { NgxBarcodeQrcodeSdkModule } from 'ngx-barcode-qrcode-sdk';
...
@NgModule({
...
imports: [
...
NgxBarcodeQrcodeSdkModule.forRoot({ licenseKey: "DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==", resourcePath: "assets/dynamsoft-javascript-barcode/" }),
],
...
})
...
Dynamsoft JavaScript Barcode Reader를 활성화하려면 30-day free trial license key을 신청해야 합니다. 리소스 경로는
angular.json
파일의 경로와 동일해야 합니다.구성 요소
*.ts
파일에서 NgxBarcodeQrcodeSdkService
를 삽입하고 출력 이벤트를 추가합니다.import { NgxBarcodeQrcodeSdkService } from 'ngx-barcode-qrcode-sdk';
...
export class FooComponent implements OnInit {
barcodeResult: string = '';
constructor(private barcodeQrCodeSdkService: NgxBarcodeQrcodeSdkService) {
}
ngOnInit(): void {
}
onResultReady(result: string): void {
this.barcodeResult = result;
}
}
그런 다음 해당 HTML 파일에
ngx-barcode-reader
또는 ngx-barcode-scanner
를 포함합니다.바코드 리더
<div>
<a>Barcode QR code decoding results: {{barcodeResult}}</a>
</div>
<ngx-barcode-reader
(result)="onResultReady($event)"
></ngx-barcode-reader>
바코드 스캐너
<div>
<a>Barcode QR code decoding results: {{barcodeResult}}</a>
</div>
<ngx-barcode-scanner
(result)="onResultReady($event)"
></ngx-barcode-scanner>
소스 코드
https://github.com/yushulx/ngx-barcode-qrcode-sdk
Reference
이 문제에 관하여(각도 바코드 QR 코드 스캔 라이브러리를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yushulx/how-to-create-an-angular-barcode-qr-code-scanning-library-2g17텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)