@nativescript-community/ui-barcodeview
在您的 NativeScript 应用中使用扫描 QR 码/条形码。
npm i --save @nativescript-community/ui-barcodeview

NativeScript BarcodeView

支持的条形码类型

iOS 和 Android

  • CODE_39
  • CODE_93
  • CODE_128
  • DATA_MATRIX
  • EAN_8
  • EAN_13
  • ITF (也称为 ITF14)
  • PDF_417 (仅在 Android 上,通过 formats 明确传递时)
  • QR_CODE
  • UPC_A
  • UPC_E

仅 Android

  • CODABAR
  • MAXICODE
  • RSS_14

仅 iOS

  • AZTEC
  • CODE_39_MOD_43
  • INTERLEAVED_2_OF_5

关于 UPC_AEAN_13 的说明

当指定其中一个(或两个)时,都可以返回。您可以通过检查结果对象的 format 属性来检查实际类型。有关详细信息,请参阅 #176

安装

  • tns plugin add @nativescript-community/ui-barcodeview

添加插件后,请务必运行新的构建以避免任何问题。


用法

nativescript BarcodeView 基于 [Eddy Verbruggen] (https://github.com/EddyVerbruggen) 的 nativescript-barcodescanner

纯 NativeScript

重要:确保在 Page 元素上包含 xmlns:mdc="@nativescript-community/ui-barcodeview"

XML

<Page xmlns:bc="@nativescript-community/ui-barcodeview">
<StackLayout horizontalAlignment="center">
<bc:BarcodeView width="100" height="100" scanResult="onScanResult"/>
</StackLayout>
</Page>

NativeScript + Angular

import { registerElement } from 'nativescript-angular/element-registry';
import { BarcodeView } from '@nativescript-community/ui-barcodeview';
registerElement('BarcodeView', () => BarcodeView);
<BarcodeView width="100" height="100" (scanResult)="onScanResult($event)"></CanvasView>

NativeScript + Vue

import Vue from 'nativescript-vue';
(<any>Vue).registerElement('BarcodeView', () => require('@nativescript-community/ui-barcodeview').BarcodeView);
<BarcodeView  width="100" height="100"  @scanResult="onScanResult"/>

无论您的 UI 框架是什么,您都会收到事件

function onScanResult(text:string, barcodeFormat:string) {

}

属性

  • formats
    要解码的格式的逗号分隔列表

  • preferFrontCamera
    是否优先使用前置摄像头

  • beepOnScan
    是否应该蜂鸣?

  • reportDuplicates
    是否应继续报告?

  • pause
    暂停摄像头

  • torchOn
    猜对了?

方法

  • pauseScanning
  • resumeScanning

Android

ZXing: https://github.com/zxing/zxing/releases ZXing Android Embedded: https://github.com/journeyapps/zxing-android-embedded

最新 ZXing 版本将 android minSdkVersion 提高到 24。您仍然可以将其降低 https://github.com/journeyapps/zxing-android-embedded#option-2-desugaring-advanced