二维码组件更新

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

View File

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