鸿蒙5.0&next开发【scanBarcode (默认界面扫码)】 扫码服务_鸿蒙开发 scanbarcode.startscanforresult
本模块提供默认界面扫码能力。
起始版本: 4.0.0(10)
导入模块
import { scanBarcode } from \'@kit.ScanKit\';
ScanResult
扫码结果。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.0.0(10)
ScanCodeRect
码的位置信息。使用默认扫码接口(startScan和startScanForResult)不返回码位置。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.1.0(11)
Point
点坐标,该坐标系左上角为{0,0}。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 5.0.0(12)
ScanOptions
扫码、识码参数。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.0.0(10)
- false:单码识别。 |
| enableAlbum | boolean | 否 | 是 | 是否开启相册,默认true。- true:开启相册扫码。 - false:关闭相册扫码。注意此参数只控制默认界面扫码能力中的相册识码且相册识码只支持单码识别。 |
示例:
import { scanBarcode, scanCore } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 定义扫码参数optionslet options: scanBarcode.ScanOptions = { scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: true };try { scanBarcode.startScanForResult(getContext(this), options).then((result: scanBarcode.ScanResult) => { hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by promise with options, result is ${JSON.stringify(result)}`); }).catch((error: BusinessError) => { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by promise with options. Code: ${error.code}, message: ${error.message}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScanForResult. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScanForResult
startScanForResult(context: common.Context, options?: ScanOptions): Promise
通过配置参数调用默认界面扫码,使用Promise异步回调返回解码结果。需要在页面和组件的生命周期内调用。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.1.0(11)
参数:
返回值:
示例:
import { scanCore, scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 定义扫码参数optionslet options: scanBarcode.ScanOptions = { scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: true };try { scanBarcode.startScanForResult(getContext(this), options).then((result: scanBarcode.ScanResult) => { hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by promise with options, result is ${JSON.stringify(result)}`); }).catch((error: BusinessError) => { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by promise with options. Code: ${error.code}, message: ${error.message}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScanForResult. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScanForResult
startScanForResult(context: common.Context, callback: AsyncCallback): void
启动默认界面扫码,使用Callback异步回调返回解码结果。需要在页面和组件的生命周期内调用。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.1.0(11)
参数:
示例:
import { scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 启动扫码,拉起扫码界面try { scanBarcode.startScanForResult(getContext(this), (error: BusinessError, result: scanBarcode.ScanResult) => { if (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by callback. Code: ${error.code}, message: ${error.message}`); return; } hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by callback, result is ${JSON.stringify(result)}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScanForResult. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScanForResult
startScanForResult(context: common.Context, options: ScanOptions, callback: AsyncCallback): void
通过配置参数调用默认界面扫码,使用Callback异步回调返回解码结果。需要在页面和组件的生命周期内调用。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.1.0(11)
参数:
示例:
import { scanCore, scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 定义扫码参数optionslet options: scanBarcode.ScanOptions = { scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: true };// 启动扫码,拉起扫码界面try { scanBarcode.startScanForResult(getContext(this), options, (error: BusinessError, result: scanBarcode.ScanResult) => { if (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by callback with options. Code: ${error.code}, message: ${error.message}`); return; } hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by callback with options, result is ${JSON.stringify(result)}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScanForResult. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScan(deprecated)
startScan(options?: ScanOptions): Promise
通过配置参数调用默认界面扫码,使用Promise异步回调返回扫码结果。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.0.0(10)
参数:
返回值:
示例:
import { scanCore, scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 构造启动扫码的入参optionslet options: scanBarcode.ScanOptions = { scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: true };try { scanBarcode.startScan(options).then((result: scanBarcode.ScanResult) => { hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by promise with options, result is ${JSON.stringify(result)}`); }).catch((error: BusinessError) => { // 当扫码过程中出现错误打印报错并返回 hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by promise with options. Code: ${error.code}, message: ${error.message}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScan. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScan(deprecated)
startScan(callback: AsyncCallback): void
启动默认界面扫码,使用Callback异步回调返回扫码结果。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.0.0(10)
参数:
示例:
import { scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';try { scanBarcode.startScan((error: BusinessError, result: scanBarcode.ScanResult) => { // error回调监听,当扫码过程中出现错误打印报错并返回 if (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by callback. Code: ${error.code}, message: ${error.message}`); return; } hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by callback, result is ${JSON.stringify(result)}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScan. Code: ${error.code}, message: ${error.message}`);}
scanBarcode.startScan(deprecated)
startScan(options: ScanOptions, callback: AsyncCallback): void
通过配置参数调用默认界面扫码,使用Callback异步回调返回扫码结果。
系统能力: SystemCapability.Multimedia.Scan.ScanBarcode
起始版本: 4.0.0(10)
参数:
示例:
import { scanCore, scanBarcode } from \'@kit.ScanKit\';import { hilog } from \'@kit.PerformanceAnalysisKit\';import { BusinessError } from \'@kit.BasicServicesKit\';// 构造启动扫码的入参optionslet options: scanBarcode.ScanOptions = { scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: true };try { scanBarcode.startScan(options, (error: BusinessError, result: scanBarcode.ScanResult) => { // error回调监听,当扫码过程中出现错误打印报错并返回 if (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to get ScanResult by callback with options. Code: ${error.code}, message: ${error.message}`); return; } hilog.info(0x0001, \'[Scan Sample]\', `Succeeded in getting ScanResult by callback with options, result is ${JSON.stringify(result)}`); });} catch (error) { hilog.error(0x0001, \'[Scan Sample]\', `Failed to startScan. Code: ${error.code}, message: ${error.message}`);}