二维码组件更新

This commit is contained in:
bb_pan 2025-07-27 10:43:23 +08:00
parent af22fef13c
commit ae44e8de17
2 changed files with 108 additions and 88 deletions

View File

@ -1,6 +1,6 @@
<template>
<!-- 该组件无实际 DOM 结构 -->
<div style="display: none;"></div>
<!-- 该组件无实际 DOM 结构 -->
<div style="display: none"></div>
</template>
<script setup>
@ -10,55 +10,65 @@ const emit = defineEmits(['scanSuccess', 'scanError'])
//
const scanQrCode = () => {
console.log("扫一扫");
console.log("window对象", window);
console.log('扫一扫')
console.log('window对象', window)
document.addEventListener("deviceready", onDeviceReady.bind(this), false);
document.addEventListener('deviceready', onDeviceReady.bind(this), false)
function onDeviceReady() {
// Cordova is now initialized. Have fun!
console.log(
"Running cordova-" +
window.cordova.platformId +
"@" +
window.cordova.version
);
window.cordova.plugins.barcodeScanner.scan(
function (result) {
emit('scanSuccess', result)
console.log("success");
console.log(result);
}.bind(this),
function (error) {
emit('scanError', new Error(`扫描失败: ${error}`))
console.log("error");
console.log(error);
},
{
preferFrontCamera: false, // 使 iOS Android
showFlipCameraButton: true, // iOS Android
showTorchButton: true, // iOS Android
torchOn: false, // Android
saveHistory: true, // Android
prompt: "请扫描二维码", // Android
resultDisplayDuration: 500, // 01500Android
formats: "QR_CODE,PDF_417", // ,PDF_417RSS_EXPANDED
orientation: "portrait", // (portrait|landscape),Android
disableAnimations: true, // iOS
disableSuccessBeep: false, // iOS Android
}
);
}
function onDeviceReady() {
// Cordova is now initialized. Have fun!
// console.log('Running cordova-' + window.cordova.platformId + '@' + window.cordova.version)
window.cordova.plugins.zxingScan.startScan(
(successResult) => {
console.log('🚀 ~ 二维码 ~ successResult:', successResult)
emit('scanSuccess', successResult)
},
(error) => {
console.log('🚀 ~ 二维码 ~ error:', error)
emit('scanError', new Error(`扫描失败: ${error}`))
},
{
isPlayBeep: true, //
isShake: true, //
fullScreenScan: true, //
},
)
// window.cordova.plugins.barcodeScanner.scan(
// function (result) {
// emit('scanSuccess', result)
// console.log('success')
// console.log(result)
// }.bind(this),
// function (error) {
// emit('scanError', new Error(`: ${error}`))
// console.log('error')
// console.log(error)
// },
// {
// preferFrontCamera: false, // 使 iOS Android
// showFlipCameraButton: true, // iOS Android
// showTorchButton: true, // iOS Android
// torchOn: false, // Android
// saveHistory: true, // Android
// prompt: '', // Android
// resultDisplayDuration: 500, // 01500Android
// formats: 'QR_CODE,PDF_417', // ,PDF_417RSS_EXPANDED
// orientation: 'portrait', // (portrait|landscape),Android
// disableAnimations: true, // iOS
// disableSuccessBeep: false, // iOS Android
// },
// )
}
}
//
defineExpose({
scanQrCode
scanQrCode,
})
onMounted(() => {
if (!window.cordova) {
console.warn('Cordova 未加载,二维码扫描功能可能不可用')
}
if (!window.cordova) {
console.warn('Cordova 未加载,二维码扫描功能可能不可用')
}
})
</script>
</script>

View File

@ -1,6 +1,6 @@
<template>
<!-- 该组件无实际 DOM 结构 -->
<div style="display: none;"></div>
<!-- 该组件无实际 DOM 结构 -->
<div style="display: none"></div>
</template>
<script setup>
@ -10,55 +10,65 @@ const emit = defineEmits(['scanSuccessBox', 'scanErrorBox'])
//
const scanQrCode = () => {
console.log("扫一扫");
console.log("window对象", window);
console.log('扫一扫')
console.log('window对象', window)
document.addEventListener("deviceready", onDeviceReady.bind(this), false);
document.addEventListener('deviceready', onDeviceReady.bind(this), false)
function onDeviceReady() {
// Cordova is now initialized. Have fun!
console.log(
"Running cordova-" +
window.cordova.platformId +
"@" +
window.cordova.version
);
window.cordova.plugins.barcodeScanner.scan(
function (result) {
emit('scanSuccessBox', result)
console.log("success");
console.log(result);
}.bind(this),
function (error) {
emit('scanErrorBox', new Error(`扫描失败: ${error}`))
console.log("error");
console.log(error);
},
{
preferFrontCamera: false, // 使 iOS Android
showFlipCameraButton: true, // iOS Android
showTorchButton: true, // iOS Android
torchOn: false, // Android
saveHistory: true, // Android
prompt: "请扫描二维码", // Android
resultDisplayDuration: 500, // 01500Android
formats: "QR_CODE,PDF_417", // ,PDF_417RSS_EXPANDED
orientation: "portrait", // (portrait|landscape),Android
disableAnimations: true, // iOS
disableSuccessBeep: false, // iOS Android
}
);
}
function onDeviceReady() {
window.cordova.plugins.zxingScan.startScan(
(successResult) => {
console.log('🚀 ~ 二维码 ~ successResult:', successResult)
emit('scanSuccessBox', successResult)
},
(error) => {
console.log('🚀 ~ 二维码 ~ error:', error)
emit('scanErrorBox', new Error(`扫描失败: ${error}`))
},
{
isPlayBeep: true, //
isShake: true, //
fullScreenScan: true, //
},
)
// Cordova is now initialized. Have fun!
// console.log('Running cordova-' + window.cordova.platformId + '@' + window.cordova.version)
// window.cordova.plugins.barcodeScanner.scan(
// function (result) {
// emit('scanSuccessBox', result)
// console.log('success')
// console.log(result)
// }.bind(this),
// function (error) {
// emit('scanErrorBox', new Error(`: ${error}`))
// console.log('error')
// console.log(error)
// },
// {
// preferFrontCamera: false, // 使 iOS Android
// showFlipCameraButton: true, // iOS Android
// showTorchButton: true, // iOS Android
// torchOn: false, // Android
// saveHistory: true, // Android
// prompt: '', // Android
// resultDisplayDuration: 500, // 01500Android
// formats: 'QR_CODE,PDF_417', // ,PDF_417RSS_EXPANDED
// orientation: 'portrait', // (portrait|landscape),Android
// disableAnimations: true, // iOS
// disableSuccessBeep: false, // iOS Android
// },
// )
}
}
//
defineExpose({
scanQrCode
scanQrCode,
})
onMounted(() => {
if (!window.cordova) {
console.warn('Cordova 未加载,二维码扫描功能可能不可用')
}
if (!window.cordova) {
console.warn('Cordova 未加载,二维码扫描功能可能不可用')
}
})
</script>
</script>