# barcode

Barcode模块管理条码（一维码和二维码）扫描识别，支持常见的一维码（如EAN13码）及二维码（如QR码）。通过调用设备的摄像头对条码进行扫描识别，扫描到条码后进行解码并返回码数据内容及码类型。

## 常量：

- QR: QR二维码，数值为0
- EAN13: EAN条形码标准版，数值为1
- EAN8: ENA条形码简版，数值为2
- AZTEC: Aztec二维码，数值为3
- DATAMATRIX: Data Matrix二维码，数值为4
- UPCA: UPC条形码标准版，数值为5
- UPCE: UPC条形码缩短版，数值为6
- CODABAR: Codabar条形码，数值为7
- CODE39: Code39条形码，数值为8
- CODE93: Code93条形码，数值为9
- CODE128: Code128条形码，数值为10
- ITF: ITF条形码，数值为11
- MAXICODE: MaxiCode二维码，数值为12
- PDF417: PDF 417二维条码，数值为13
- RSS14: RSS 14条形组合码，数值为14
- RSSEXPANDED: 扩展式RSS条形组合码，数值为15

## 方法：

- scan: 扫码识别图片中的条码
- create: 创建扫码识别控件对象
- getBarcodeById: 查找扫码识别控件对象

## 对象：

- Barcode: 扫码识别控件对象
- BarcodeStyles: Barcode扫码控件样式
- BarcodeOptions: 条码识别控件扫描参数

## 回调方法：

- BarcodeSuccessCallback: 扫码识别成功回调函数
- BarcodeErrorCallback: 扫码识别错误回调函数

## 权限：

permissions

    {
    // ...
    "permissions":{
    	// ...
    	"Barcode": {
    		"description": "二维码"
    	}
    }
    }

# Barcode

扫码识别控件对象

    interface plus.barcode.Barcode {
    	// Methods
    	function void cancel();
    	function void close();
    	function void setFlash(open);
    	function void setStyle(styles);
    	function void start(options);

    	// Events
    	function void onerror();
    	function void onmarked();
    }

## 说明：

可通过plus.barcode.create创建，也可通过new plus.barcode.Barcode构造（仅在5+APP中使用）创建。 扫码识别控件将使用设备的摄像头预览扫描内容，在控件中显示扫描基准框等用户交互元素。

## 构造：

- Barcode.constructor(domId, filters, styles): 构造扫码识别控件

## 方法：

- cancel: 取消扫码识别
- close: 关闭条码识别控件
- setFlash: 操作闪光灯
- setStyle: 设置扫码识别控件的样式
- start: 开始扫码识别

## 事件：

- onmarked: 扫码识别成功事件
- onerror: 扫码识别错误事件

# BarcodeStyles

Barcode扫码控件样式

    interface plus.barcode.BarcodeStyles {
    	attribute String background;
    	attribute String frameColor;
    	attribute String scanbarColor;

    	attribute String top;
    	attribute String left;
    	attribute String width;
    	attribute String height;
    	attribute String position;
    }

## 说明：

设置Barcode扫码控件的样式，如扫码框、扫码条的颜色等。

## 属性：

- background: (String 类型 )条码识别控件背景颜色

  颜色值支持(参考CSS颜色规范)：颜色名称(参考CSS Color Names)/十六进制值/rgb值，默认值为红色。

- frameColor: (String 类型 )扫码框颜色

  颜色值支持(参考CSS颜色规范)：颜色名称(参考CSS Color Names)/十六进制值/rgb值/rgba值，默认值为红色。

- scanbarColor: (String 类型 )扫码条颜色

  颜色值支持(参考CSS颜色规范)：颜色名称(参考CSS Color Names)/十六进制值/rgb值/rgba值，默认值为红色。

- top: (String 类型 )Barcode扫码控件左上角的垂直偏移量

  可取值： 像素值，如"100px"； 百分比，如"10%"，相对于父Webview窗口的高度； 自动计算，如"auto",根据height值自动计算，相对于父Webview窗口垂直居中。

- left: (String 类型 )Barcode扫码控件左上角的水平偏移量

  可取值： 像素值，如"100px"； 百分比，如"10%"，相对于父Webview窗口的宽度； 自动计算，如"auto"，根据width值自动计算，相对于父Webview窗口水平居中。 默认值为"0px"。

- width: (String 类型 )Barcode扫码控件的宽度

  可取值： 像素值，如"100px"； 百分比，如"10%"，相对于父Webview窗口的宽度。 默认值为"100%"。

- height: (String 类型 )Barcode扫码控件的高度

  可取值： 像素值，如"100px"； 百分比，如"10%"，相对于父Webview窗口的高度。 默认值为"100%"。

- position: (String 类型 )Barcode扫码控件在Webview窗口的布局模式

  可取值： "static" - 静态布局模式，如果页面存在滚动条则随窗口内容滚动； "absolute" - 绝对布局模式，如果页面存在滚动条不随窗口内容滚动； 默认值为"static"。

# BarcodeOptions

条码识别控件扫描参数

    interface plus.barcode.BarcodeOptions {
    	attribute Boolean conserve;
    	attribute String filename;
    	attribute Boolean vibrate;
    	attribute String sound;
    }

## 说明：

设置Barcode扫码控件的扫码识别参数，如是否保存扫码功时的截图等。

## 属性：

- conserve: (Boolean 类型 )是否保存扫码成功时的截图

  如果设置为true则在扫码成功时将图片保存，并通过onmarked回调函数的file参数返回保存文件的路径。 默认值为false，不保存截图。

- filename: (String 类型 )保存扫码成功时图片保存路径

  可通过此参数设置保存截图的路径和名称，如果设置图片文件名称则必须指定文件的后缀名（必须是.png），否则认为是指定目录，文件名称则自动生成。

- vibrate: (Boolean 类型 )扫码成功时是否需要震动提醒

  如果设置为true则在扫码成功时震动设备，false则不震动。 默认值为true。

- sound: (String 类型 )扫码成功时播放的提示音

  可取值： "none" - 不播放提示音； "default" - 播放默认提示音（5+引擎内置）。 默认值为"default"。

# BarcodeSuccessCallback

扫码识别成功回调函数

    void BarcodeSuccessCallback(type, code, file){
    	// Barcode success code
    }

## 说明：

当Barcode控件扫码成功时的回调函数，返回识别成功的扫码数据。

## 参数：

- type: ( Number ) 必选 识别到的条码类型
  Number类型的值，与Barcode对象定义的条码类型常量一致。
- code: ( String ) 必选 识别到的条码数据
  扫码识别出的数据内容，字符串类型，采用UTF8编码格式。
- file: ( String ) 可选 扫码成功的截图文件路径
  扫码识别到的截图，png格式文件，如果设置为不保存截图，则返回undefined。

## 返回值：

void : 无

# BarcodeErrorCallback

扫码识别错误回调函数

    void BarcodeErrorCallback(error){
    	// Error
    	var code = error.code; 			// 错误编码
    	var message = error.message;	// 错误描述信息
    }

## 参数：

- error: ( DOMException ) 必选 扫码识别的错误信息
  可通过error.code（Number类型）获取错误编码； 可通过error.message（String类型）获取错误描述信息。

## 返回值：

void : 无