Cordova - barcodeScanner扫码插件的使用详解(支持条形码、二维码)
作者:hangge | 2021-10-19 08:10
Cordova 提供了一个名为 barcodeScanner 的扫码插件,通过这个插件我们可以调用摄像头扫描二维码、条形码,获取数据。下面通过样例演示如何使用该插件。
(2)可以看到 barcodescanner 扫码插件已经成功添加了:
(2)效果图如下:
1,添加插件
(1)我们要在“终端”中进入工程所在的目录,然后运行如下命令安装插件:
注意:除了 phonegap-plugin-barcodescanner 插件外,还有一个名为 cordova-plugin-barcodescanner 的插件也可以实现扫码功能,并且二者调用的 API 接口都是一样的。但是后者扫码时显示界面会自动变成横屏(无法修改),所以不太推荐。
cordova plugin add phonegap-plugin-barcodescanner
(2)可以看到 barcodescanner 扫码插件已经成功添加了:
2,使用样例
(1)下面样例代码,点击页面上的“扫一扫”按钮后,会将调用摄像头进行扫码,扫描成功后会将结果弹出显示。
<!DOCTYPE html> <html> <head> <title>hangge.com</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" charset="utf-8"> // 点击扫码 function scan() { cordova.plugins.barcodeScanner.scan( function (result) { alert("--- 扫码结束 ---\n" + "Result: " + result.text + "\n" + "Format: " + result.format + "\n" + "Cancelled: " + result.cancelled); }, function (error) { alert("Scanning failed: " + error); } ); } </script> </head> <body> <button style="font-size:23px;" onclick="scan()">扫一扫</button> </body> </html>
(2)效果图如下:
附:进阶用法
barcodeScanner 插件还提供了一些更高级的配置功能,比如是否使用前置摄像头,闪光灯,是横向显示还纵向显示等等。这些只需要我们在调用方法时作为参数传入即可,具体可参考下方样例。cordova.plugins.barcodeScanner.scan( function (result) { alert("--- 扫码结束 ---\n" + "Result: " + result.text + "\n" + "Format: " + result.format + "\n" + "Cancelled: " + result.cancelled); }, function (error) { alert("Scanning failed: " + error); }, { preferFrontCamera : false, // 是否默认使用前置摄像头(同时支持 iOS 和 Android) showFlipCameraButton : true, // 是否显示前后摄像头切换按钮(同时支持 iOS 和 Android) showTorchButton : true, // 是否显示打开关闭闪光灯按钮(同时支持 iOS 和 Android) torchOn: true, // 是否默认打开闪关灯(仅支持 Android) saveHistory: true, // 是否记录扫码历史(仅支持 Android) prompt : "Place a barcode inside the scan area", // 扫码界面下方提示语(仅支持 Android) resultDisplayDuration: 500, // 扫码文本在扫码界面上显示多少毫秒。0完全禁用。默认1500(仅Android) formats : "QR_CODE,PDF_417", // 支持的格式,默认为除PDF_417和RSS_EXPANDED之外的所有格式 orientation : "portrait", // 设置为横向或纵向(portrait|landscape),默认跟随手机旋转(仅Android) disableAnimations : true, // 禁用动画(仅支持 iOS) disableSuccessBeep: false // 禁用成功蜂鸣声(同时支持 iOS 和 Android) } );
全部评论(0)