二维码组件更新

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,50 +10,60 @@ 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)
console.log("success");
console.log(result);
}.bind(this),
function (error) {
emit('scanError', new Error(`扫描失败: ${error}`)) emit('scanError', new Error(`扫描失败: ${error}`))
console.log("error");
console.log(error);
}, },
{ {
preferFrontCamera: false, // 使 iOS Android isPlayBeep: true, //
showFlipCameraButton: true, // iOS Android isShake: true, //
showTorchButton: true, // iOS Android fullScreenScan: true, //
torchOn: false, // Android },
saveHistory: true, // Android )
prompt: "请扫描二维码", // Android // window.cordova.plugins.barcodeScanner.scan(
resultDisplayDuration: 500, // 01500Android // function (result) {
formats: "QR_CODE,PDF_417", // ,PDF_417RSS_EXPANDED // emit('scanSuccess', result)
orientation: "portrait", // (portrait|landscape),Android // console.log('success')
disableAnimations: true, // iOS // console.log(result)
disableSuccessBeep: false, // iOS Android // }.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({ defineExpose({
scanQrCode scanQrCode,
}) })
onMounted(() => { onMounted(() => {

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,50 +10,60 @@ 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(
function (result) {
emit('scanSuccessBox', result)
console.log("success");
console.log(result);
}.bind(this),
function (error) {
emit('scanErrorBox', new Error(`扫描失败: ${error}`)) emit('scanErrorBox', new Error(`扫描失败: ${error}`))
console.log("error");
console.log(error);
}, },
{ {
preferFrontCamera: false, // 使 iOS Android isPlayBeep: true, //
showFlipCameraButton: true, // iOS Android isShake: true, //
showTorchButton: true, // iOS Android fullScreenScan: true, //
torchOn: false, // Android },
saveHistory: true, // Android )
prompt: "请扫描二维码", // Android // Cordova is now initialized. Have fun!
resultDisplayDuration: 500, // 01500Android // console.log('Running cordova-' + window.cordova.platformId + '@' + window.cordova.version)
formats: "QR_CODE,PDF_417", // ,PDF_417RSS_EXPANDED // window.cordova.plugins.barcodeScanner.scan(
orientation: "portrait", // (portrait|landscape),Android // function (result) {
disableAnimations: true, // iOS // emit('scanSuccessBox', result)
disableSuccessBeep: false, // iOS Android // 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({ defineExpose({
scanQrCode scanQrCode,
}) })
onMounted(() => { onMounted(() => {