该插件的样式需要自己定义默认的样式很空,支持摄像头切换, 打开/关闭闪光灯
cordova plugin add cordova-plugin-qrscanner
若在ionic或vue等spa应用中使用,有以下两种方式引入QRScanner 变量
var QRScanner = require('QRScanner'); 或
<script src="path/to/qrscanner/library.bundle.min.js"></script>
var app = {
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
document.addEventListener("volumedownbutton",function(){ //将音量键模拟为触发条件
if(QRScanner!==undefined){
QRScanner.prepare(function(err,status){
if(err){
alert(err)
return false
}
document.getElementsByClassName("app")[0].style.display="none" //将cordova 默认样式清除
document.body.style.backgroundColor="transparent" // 背景设为可见
if(status.authorized){
QRScanner.scan(displayContents);
function displayContents(err, text) {
if (err) {
alert('启动扫描出错:' + JSON.stringify(err));
} else {
alert(text) // 若扫描有效,该变量就为对应的网址
QRScanner.scan(displayContents);//重复扫描
return false
}
}
QRScanner.show(); //打开扫描
}else if(status.denied){
alert("denied") //用户拒绝访问摄像头
}
})
}else{
alert("ererr")
}
},false)
}
};
app.initialize();
QRScanner.useFrontCamera(); 切换成前置摄像头
QRScanner.useBackCamera(); 切换成后置摄像头
QRScanner.enableLight(); 打开闪关灯
QRScanner.disableLight(); 关闭闪光灯
更详细api请到以下网址浏览
https://www.npmjs.com/package/cordova-plugin-qrscanner
该插件对android平台非常友好,android平台下响应速度快, 插件自带一套样式
cordova plugin add cordova-plugin-cszbar
var app = {
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
document.addEventListener("volumeupbutton", function(){ //音量模拟触发场景
if(cloudSky!==undefined || cloudSky!==null){
cloudSky.zBar.scan({
text_title:"扫描二维码", //扫码标题
text_instructions:"请将相机对准二维码", //扫描提示文字
camera:"back", // 后置摄像头 front/back
flash:"auto", // 闪光灯自动 on/off/auto
drawSight:true // 相机中间出现一条红线
},
function success(succ){
alert("成功"+succ) // succ成功后返回的url地址
},function fail(fail){
alert("失败"+fail)
})
}else{
alert("扫描插件失败")
}
}, false);
}
};
app.initialize();