# [barcode]() Barcode模块管理二维码,提供二维码扫描识别功能,可调用设备的摄像头对二维码图片扫描进行数据输入。通过plus.barcode可获取二维码管理对象。 ### 常量: - [QR](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.QR): 二维码类型常量,QR码,数值为0 - [EAN13](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.EAN13): 二维码类型常量,EAN码标准版,数值为1 - [EAN8](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.EAN8): 二维码类型常量,ENA码简版,数值为2 - [AZTEC](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.AZTEC): 二维码类型常量,Aztec码,数值为3 - [DATAMATRIX](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.DATAMATRIX): 二维码类型常量,Data Matrix码,数值为4 - [UPCA](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.UPCA): 二维码类型常量,UPC码标准版,数值为5 - [UPCE](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.UPCE): 二维码类型常量,UPC码缩短版,数值为6 - [CODABAR](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.CODABAR): 二维码类型常量,Codabar码,数值为7 - [CODE39](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.CODE39): 二维码类型常量,Code39码,数值为8 - [CODE93](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.CODE93): 二维码类型常量,Code93码,数值为9 - [CODE128](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.CODE128): 二维码类型常量,Code128码,数值为10 - [ITF](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.ITF): 二维码类型常量,ITF码,数值为11 - [MAXICODE](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.MAXICODE): 二维码类型常量,MaxiCode码,数值为12 - [PDF417](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.PDF417): 二维码类型常量,PDF 417码,数值为13 - [RSS14](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.RSS14): 二维码类型常量,RSS 14码,数值为14 - [RSSEXPANDED](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.RSSEXPANDED): 二维码类型常量,扩展式RSS码,数值为15 ### 方法: - [scan](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.scan): 通过图片扫描二维码数据 ### 对象: - [Barcode](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode): 二维码识别控件对象 - [BarcodeOption](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeOption): JSON对象,二维码识别控件扫描参数 ### 回调方法: - [BarcodeSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeSuccessCallback): 二维码识别成功的回调函数 - [BarcodeErrorCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeErrorCallback): 二维码识别错误的回调函数 ### 权限: permissions ~~~ "Barcode": { "description": "访问二维码扫描插件" } ~~~ # [QR]() 二维码类型常量,QR码,数值为0 ~~~ plus.barcode.QR; ~~~ ### 说明: Number 类型 1994年由日本Denso-Wave公司发明,QR来自英文Quick Response的缩写,即快速反应的意思,源自发明者希望QR码可让其内容快速被解码。 # [EAN13]() 二维码类型常量,EAN码标准版,数值为1 ~~~ plus.barcode.EAN13; ~~~ ### 说明: Number 类型 由国际物品编码协会在全球推广应用的商品条码,是由13位数字组成。 # [EAN8]() 二维码类型常量,ENA码简版,数值为2 ~~~ plus.barcode.EAN8; ~~~ ### 说明: Number 类型 由国际物品编码协会在全球推广应用的商品条码,是由8位数字组成。 # [AZTEC]() 二维码类型常量,Aztec码,数值为3 ~~~ plus.barcode.AZTEC; ~~~ ### 说明: Number 类型 由Andrew Longacre发明于1995年,该代码是用于国际出版。最小的Aztec码符号编码13个数字或12个英文字母。最大的Aztec码符号编码3832数字或3067英文字母或1914字节的数据。 # [DATAMATRIX]() 二维码类型常量,Data Matrix码,数值为4 ~~~ plus.barcode.DATAMATRIX; ~~~ ### 说明: Number 类型 Data Matrix原名Data code,由美国国际资料公司(International Data Matrix, 简称IDMatrix)于1989年发明。可编码字元集包括全部的ASCII字元及扩充ASCII字元,容量可包含2235个英文数字资料、1556个8位元资料,3116个数字资料。由于Data Matrix二维条码只需要读取资料的20%即可精确辨读,因此很适合应用在条码容易受损的场所。 # [UPCA]() 二维码类型常量,UPC码标准版,数值为5 ~~~ plus.barcode.UPCA; ~~~ ### 说明: Number 类型 UPC码是美国统一代码委员会制定的一种商品用条码,主要用于美国和加拿大地区,常在美国进口的商品上可以看到。UPC码标准版由12位数字构成,故其字码集为数字0~9。 # [UPCE]() 二维码类型常量,UPC码缩短版,数值为6 ~~~ plus.barcode.UPCE; ~~~ ### 说明: Number 类型 UPC码是美国统一代码委员会制定的一种商品用条码,主要用于美国和加拿大地区,常在美国进口的商品上可以看到。UPC码缩短版由8位数字构成,故其字码集为数字0~9。 # [CODABAR]() 二维码类型常量,Codabar码,数值为7 ~~~ plus.barcode.CODABAR; ~~~ ### 说明: Number 类型 Codabar码最初是为零售价格标签系统而研制开发的。1975年,National Retail Merchants Association(NRMA)选择了其它符号类型作为标准后,Codabar开始在多个方面用于非零售应用领域,如图书馆、货运和医药业。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持Codabar码的识别 # [CODE39]() 二维码类型常量,Code39码,数值为8 ~~~ plus.barcode.CODE39; ~~~ ### 说明: Number 类型 Code 39码是Intermec公司于1975年推出的一维条码, 39码是一种可供使用者双向扫瞄的分散式条码,也就是说相临两资料码之间,39码必须包含一个不具任何意义的空白(或细白,其逻辑值为0),且 39码具有支援文数字的能力,编码规则简单、误码率低、所能表示字符个数多等特点,39码在各个领域有着极为广泛的应用。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持Code39码的识别 # [CODE93]() 二维码类型常量,Code93码,数值为9 ~~~ plus.barcode.CODE93; ~~~ ### 说明: Number 类型 Code 93码的条码符号是由Intermec公司于1982年设计的 提供更高的密度和数据安全增强code39 。它是一个字母,长度可变符号。代码93主要用于由加拿大邮政编码补充提供的资料。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持Code93码的识别 # [CODE128]() 二维码类型常量,Code128码,数值为10 ~~~ plus.barcode.CODE128; ~~~ ### 说明: Number 类型 CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持Code128码的识别 # [ITF]() 二维码类型常量,ITF码,数值为11 ~~~ plus.barcode.ITF; ~~~ ### 说明: Number 类型 ITF条码,又称交叉二五条码,由14位数字字符代表组成。主要用于运输包装,是印刷条件较差,不允许印刷EAN-13和UPC-A条码时应选用的一种条码。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持ITF码的识别 # [MAXICODE]() 二维码类型常量,MaxiCode码,数值为12 ~~~ plus.barcode.MAXICODE; ~~~ ### 说明: Number 类型 1996年时,美国自动辨识协会(AIMUSA)制定统一的符号规格,称为Maxicode二维条码,也有人称USS-Maxicode二维条码(Uniform Symbology Specification-Maxicode)。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持MaxiCode码的识别 # [PDF417]() 二维码类型常量,PDF 417码,数值为13 ~~~ plus.barcode.PDF417; ~~~ ### 说明: Number 类型 PDF417条码是由美国SYMBOL公司发明的,PDF(Portable Data File)意思是“便携数据文件”。组成条码的每一个条码字符由4个条和4个空共17个模块构成,故称为PDF417条码。PDF417条码最大的优势在于其庞大的数据容量和极强的纠错能力。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持PDF 417码的识别 # [RSS14]() 二维码类型常量,RSS 14码,数值为14 ~~~ plus.barcode.RSS14; ~~~ ### 说明: Number 类型 RSS条码是有国际物品编码协会EAN和美国统一代码委员会UCC开发的RSS(Reduced Space Symbology)条码符号。它是一种一维码和二维码的组合码。和其它线性条码相比,RSS系列码制具有更高的密度,因为它可以表示更多的字符。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持RSS14码的识别 # [RSSEXPANDED]() 二维码类型常量,扩展式RSS码,数值为15 ~~~ plus.barcode.RSSEXPANDED; ~~~ ### 说明: Number 类型 RSS条码是有国际物品编码协会EAN和美国统一代码委员会UCC开发的RSS(Reduced Space Symbology)条码符号。它是一种一维码和二维码的组合码。和其它线性条码相比,RSS系列码制具有更高的密度,因为它可以表示更多的字符。扩展式RSS码是长度可以变化的线性码制,能够对74个数字字符或41个字母字符的AI单元数据传数据进行编码。 ### 平台支持 - Android - 2.2+ (支持) - iOS - 4.3+ (不支持): 不支持扩展式RSS码的识别 # [scan]() 通过图片扫描二维码数据 ~~~ void plus.barcode.scan( path, successCB, errorCB, filters ); ~~~ ### 说明: 从图片中扫描二维码数据,扫描到二维码数据后通过successCallback回调返回数据,扫描失败则通过errorCallback回调返回。 ### 参数: - path: *( DOMString ) 必选 *要扫描的图片的地址 图片的地址必须是本地文件地址,必须是URLType类型(如以"_www"、"_doc"、"_documents"、"_downloads"开头的相对URL路径)。 - successCB: *( [BarcodeSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeSuccessCallback) ) 必选 *扫描二维码数据成功的回调函数,用于返回二维码数据 - errorCB: *( [BarcodeErrorCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeErrorCallback) ) 可选 *扫描二维码数据失败的回调函数,用于返回错误信息 - filters: *( Array ) 可选 *要识别的二维码类型过滤器,为二维码类型常量数组 二维码识别引擎可支持多种二维码类型,默认情况支持QR、EAN13、EAN8三种类型。可通过此参数设置需要支持的二维码类型(设置支持的二维码类型越多,识别效率将会降低)。 ### 返回值: void : 无 ### 平台支持: - Android - 2.2+ (支持) - iOS - 4.3+ (支持) ### 示例: ~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Barcode Example</title> <script type="text/javascript" > // 扩展API加载完毕后调用onPlusReady回调函数 document.addEventListener( "plusready", onPlusReady, false ); // 扩展API加载完毕,现在可以正常调用扩展API function onPlusReady() { var e = document.getElementById("scan"); e.removeAttribute( "disabled" ); } // 从图片中扫描 function scanImg() { plus.barcode.scan( '_www/barcode.png', function (type,result) { alert( "Scan success:("+type+")"+result ); }, function (error) { alert( error.message ); } ); } </script> <style type="text/css"> *{ -webkit-user-select: none; } html,body{ margin: 0px; padding: 0px; height: 100%; } </style> </head> <body > <input id="scan" type='button' disabled="disabled" onclick='scanImg()' value='扫描图片'></input> </body> </html> ~~~ # [Barcode]() 二维码识别控件对象 ~~~ interface plus.barcode.Barcode { // Methods function void start( options ); function void cancel(); function void setFlash( open ); // Events function void onmarked(); function void onerror(); } ~~~ ### 说明: Barcode对象表示二维码识别控件对象,用于在窗口中显示二维码识别控件,使用此对象可自定义二维码识别界面。 ### 构造: - [Barcode.constructor(id,filters)](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.Barcode.constructor(id,filters)): 创建Barcode对象 ### 方法: - [start](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.start): 开始二维码识别 - [cancel](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.cancel): 结束二维码识别 - [setFlash](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.setFlash): 是否开启闪光灯 ### 事件: - [onmarked](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.onmarked): 二维码识别成功事件 - [onerror](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode.onerror): 二维码识别错误事件 ### 示例: ~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Barcode Example</title> <script type="text/javascript" > // 扩展API加载完毕后调用onPlusReady回调函数 document.addEventListener( "plusready", onPlusReady, false ); // 扩展API加载完毕,现在可以正常调用扩展API function onPlusReady() { var e = document.getElementById("scan"); e.removeAttribute( "disabled" ); } var scan = null; function onmarked( type, result ) { var text = '未知: '; switch(type){ case plus.barcode.QR: text = 'QR: '; break; case plus.barcode.EAN13: text = 'EAN13: '; break; case plus.barcode.EAN8: text = 'EAN8: '; break; } alert( text+result ); } function startRecognize() { scan = new plus.barcode.Barcode('bcid'); scan.onmarked = onmarked; } function startScan() { scan.start(); } function cancelScan() { scan.cancel(); } function setFlash() { scan.setFlash(); } </script> <style type="text/css"> *{ -webkit-user-select: none; } html,body{ margin: 0px; padding: 0px; height: 100%; } #bcid { background:#0F0; height:480px; width:360px; } </style> </head> <body > <input type='button' onclick='startRecognize()' value='创建扫描控件' /> <input type='button' onclick='startScan()' value='开始扫描' /> <input type='button' onclick='cancelScan()' value='取消扫描' /> <input type='button' onclick='setFlash()' value='开启闪光灯' /> <div id= "bcid"></div> <input type='text' id='text'/> </body> </html> ~~~ # [Barcode.constructor(id,filters)]() 创建Barcode对象 ~~~ var bc = new plus.barcode.Barcode( id, filters ); ~~~ ### 说明: 创建Barcode对象,并指定Barcode对象的在界面中关联div或object标签的id号。 ### 参数: - id: *( DOMString ) 必选 *二维码识别控件在窗口的对应obj节点的id值 为了定义二维码识别控件在窗口中的位置,需要指定控件定位标签(div或objecct)的id号,系统将根据此id号来确定二维码识别控件的位置。 - filters: *( Array[Number] ) 可选 *要识别的二维码类型过滤器,为二维码类型常量数组 二维码识别引擎可支持多种二维码类型,默认情况支持QR、EAN13、EAN8三种类型。可通过此参数设置需要支持的二维码类型(设置支持的二维码类型越多,识别效率将会降低)。 ### 返回值: [Barcode](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.Barcode) : ### 示例: ~~~ // 创建支持默认二维码类型的识别控件 var bc = new plus.barcode.Barcode( "barcode" ); // 创建支持 var filter = [plus.barcode.QR,plus.barcode.AZTEC]; var bc2 = new plus.barcode.Barcode( "barcode", filter ); ~~~ # [start]() 开始二维码识别 ~~~ void bc.start( options ); ~~~ ### 说明: 开始对摄像头获取图片数据进行二维码识别,当识别出二维码数据时通过onmarked回调函数返回。 ### 参数: - optons: *( [BarcodeOption](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeOption) ) 可选 *二维码识别的参数 通过此参数可设置是否获取扫描的的二维码图片数据。 ### 返回值: void : 无 # [cancel]() 结束二维码识别 ~~~ void bc.cancel(); ~~~ ### 说明: 结束对摄像头获取图片数据进行二维码识别操作。 ### 参数: 无 ### 返回值: void : 无 # [setFlash]() 是否开启闪光灯 ~~~ void obj.setFlash( open ); ~~~ ### 说明: 设置二维码扫描控件显示时是否开启摄像头的闪光灯,默认是不开启的。 ### 参数: - open: *( Boolean ) 必选 *是否开启闪光灯 可取值true或false,true表示打开闪光灯,false表示关闭闪光灯。 ### 返回值: void : 无 # [onmarked]() 二维码识别成功事件 ~~~ void obj.onmarked = function ( type, code, file ) { // loaded code } ~~~ ### 说明: [BarcodeSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeSuccessCallback) 类型 当扫描控件识别到有效的二维码数据时触发,并返回扫描结果。 # [onerror]() 二维码识别错误事件 ~~~ void obj.onerror = function ( error ) { // loaded code } ~~~ ### 说明: [BarcodeErrorCallback](http://www.dcloud.io/docs/api/zh_cn/barcode.shtml#plus.barcode.BarcodeErrorCallback) 类型 当扫描控件识别发生错误时时触发,并返回错误信息。 # [BarcodeOption]() JSON对象,二维码识别控件扫描参数 ~~~ interface plus.barcode.BarcodeOption { attribute Boolean conserve; attribute DOMString filename; } ~~~ ### 说明: 用于设置二维码识别控件扫描二维码的参数,如是否保存扫描成功时的图片等。 ### 属性: - conserve: *(Boolean 类型)*是否保存成功扫描到的二维码数据时的图片 如果设置为true则在成功扫描到二维码数据时将图片保存,并通过onmarked回调函数的file参数返回保存文件的路径。默认值为false,不保存图片。 - filename: *(DOMString 类型)*保存成功扫描到的二维码数据时的图片路径 可通过此参数设置保存图片的路径或名,如果设置图片文件名称则必须指定文件的后缀名(必须是.png),否则认为是指定目录,文件名称则自动生成。 # [BarcodeSuccessCallback]() 二维码识别成功的回调函数 ~~~ void BarcodeSuccessCallback ( type, code, file ) { // Barcode success code } ~~~ ### 说明: 当获取二维码识别成功时的回调函数,用于返回识别成功的数据。 ### 参数: - type: *( Number ) 必选 *识别到的二维码类型 Number类型的值,与Barcode对象定义的二维码类型常量一致。 - code: *( DOMString ) 必选 *识别到的二维码数据 从二维码图片中扫描出的数据内容,字符串采用UTF8编码格式。 - file: *( DOMString ) 可选 *识别到的二维码图片文件路径 识别到的二维码数据图片,为png格式文件,为设置为不保存图片,则返回undefined。 ### 返回值: void : 无 # [BarcodeErrorCallback]() 二维码识别错误的回调函数 ~~~ void BarcodeErrorCallback( error ) { // Handle error } ~~~ ### 参数: - error: *( DOMException ) 必选 *二维码识别的错误信息 ### 返回值: void : 无