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)