@capacitor/barcode-scanner
使用 Outsystems Barcode 库的 Capacitor 插件
安装
npm install @capacitor/barcode-scanner
npx cap sync
Android
条形码扫描器插件要求最低 Android SDK 目标为 26。这高于 Capacitor 应用程序附带的默认值。您可以在android/variables.gradle文件中更新此值。
ext {
minSdkVersion = 26
}
注意: 使用ZXING扫描库的 Android 支持所有格式,而MLKIT支持除MAXICODE、RSS_14、RSS_EXPANDED和UPC_EAN_EXTENSION之外的所有格式 - 在hint中使用其中之一将默认扫描任何格式。
iOS
条形码扫描器使用设备上的相机。确保在 Info.plist 文件中配置 Privacy - Camera Usage Description,以便您的应用程序可以访问设备的相机。
注意: iOS 支持除MAXICODE和UPC_EAN_EXTENSION之外的所有格式 - 在hint中使用它们将默认扫描任何格式。此外,Apple Vision 不区分UPC_A和EAN_13,因此在hint中指定其中之一将允许扫描两者。
API
定义能够扫描条形码的插件的契约。 需要实现 scanBarcode 方法,该方法使用给定选项启动条形码扫描。
从 Android targetSdk 36 开始,对于 Android 16 及更高版本上的大屏幕(例如平板电脑),scanOrientation 参数无效。
您可以通过将<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />添加到AndroidManifest.xml内的<application>或<activity>来在应用程序中选择退出此行为。
但请记住,这种选择退出是临时的,将在 Android 17 中不再起作用。Android 不鼓励为大屏幕设置特定方向。
普通的 Android 手机不受此更改的影响。
有关更多信息,请查看 Android 文档,网址为 https://developer.android.com/about/versions/16/behavior-changes-16#adaptive-layouts
scanBarcode(...)
scanBarcode(options: CapacitorBarcodeScannerOptions) => Promise<CapacitorBarcodeScannerScanResult>
| 参数 | 类型 |
|---|---|
options | |
返回:
Promise<CapacitorBarcodeScannerScanResult>
Type Aliases
CapacitorBarcodeScannerScanResult
定义从条形码扫描返回的结果的结构。
{ ScanResult: string; format: CapacitorBarcodeScannerTypeHint; }
CapacitorBarcodeScannerTypeHint
使用特殊的 'ALL' 选项扩展 Html5Qrcode 支持的格式,表示支持所有条形码类型。 类型定义结合了Html5QrcodeSupportedFormats和 OSBarcodeTypeHintALLOption 来表示要扫描的条形码类型的提示。
Html5QrcodeSupportedFormats | CapacitorBarcodeScannerTypeHintALLOption
CapacitorBarcodeScannerOptions
定义配置条形码扫描的选项。
{ hint: CapacitorBarcodeScannerTypeHint; scanInstructions?: string; scanButton?: boolean; scanText?: string; cameraDirection?: CapacitorBarcodeScannerCameraDirection; scanOrientation?: CapacitorBarcodeScannerScanOrientation; android?: { scanningLibrary?: CapacitorBarcodeScannerAndroidScanningLibrary; }; web?: { showCameraSelection?: boolean; scannerFPS?: number; }; }