HinweisAuf dieses Plugin kann nur unter dem https-Protokoll zugegriffen werden. Das http-Protokoll funktioniert nicht gut. Verwenden Sie am besten vue2, da vue3 fehleranfällig ist! ! ! ! ! beschreibenRealisieren Sie die Code-Scan-Funktion über Vue Referenzdokument: vue-qrcode-reader Gehen Sie zur offiziellen Website –> offizielles Dokument EffektanzeigeImplementierungsschritte:Schritt 1 (Plugin installieren)
Schritt 2 (Komponenten erstellen) Da es auf mehreren Seiten verwendet werden kann, wird es zu einer Komponente gemacht. (1) Erstellen Sie qrcode.vue in Komponenten unter src // qrcode.vue <Vorlage> <div> <!-- <p class="error">{{ Fehler }}</p> --> <!--Fehlermeldung--> <!-- <p Klasse="Dekodierergebnis"> Scan-Ergebnisse: {{ Ergebnis }} </p> --> <!--Scan-Ergebnisse--> <!-- <p @click="openCamera">Kamera öffnen</p> <div v-show="anzeigen" class="KameraNachricht"> <p @click="closeCamera">Kamera schließen</p> <p @click="openFlash">Öffne die Taschenlampe</p> <p @click="switchCamera">Kameraumkehr</p> </div> --> <Qrcode-Stream v-show="QR-Code" :Kamera="Kamera" :Fackel="FackelAktiv" @decode="beimDecoden" @init="beiInit" > <div> <div Klasse="QR-Scanner"> <div Klasse="Box"> <div Klasse="Zeile"></div> <div Klasse="Winkel"></div> </div> <div Klasse="txt"> Geben Sie den QR-Code/Barcode in das Feld ein, um <div class="myQrcode">Mein QR-Code</div> automatisch zu scannen. </div> </div> </div> </qrcode-stream> </div> </Vorlage> <Skript> // Laden Sie das Plugin herunter // cnpm install --save vue-qrcode-reader // Importieren importiere { QrcodeStream } von „vue-qrcode-reader“; Standard exportieren { //Komponenten registrieren: { QrcodeStream }, Daten() { zurückkehren { result: '', // Fehler bei den Scan-Ergebnisinformationen: '', // Fehlermeldung // anzeigen: false, // QR-Code: falsch, qrcode: wahr, torchActive: falsch, Kamera: 'vorne', }; }, Methoden: { onDecode(Ergebnis) { console.log(Ergebnis); dieses.Ergebnis = Ergebnis; }, asynchron beiInit(Versprechen) { const { Fähigkeiten } = warte auf Versprechen; const TORCH_IS_SUPPORTED = !!Funktionen.torch; versuchen { auf ein Versprechen warten; } Fehler abfangen { if (error.name === 'Nicht zulässiger Fehler') { this.error = „FEHLER: Sie müssen den Kamerazugriff gewähren“; } sonst wenn (Fehler.name === 'Nicht gefundener Fehler') { this.error = „FEHLER: Auf diesem Gerät ist keine Kamera vorhanden“; } sonst wenn (Fehler.name === 'Nicht unterstützter Fehler') { this.error = „FEHLER: Sicherheitskontext erforderlich (HTTPS, localhost)“; } sonst wenn (Fehler.name === 'Nicht lesbarer Fehler') { this.error = 'FEHLER: Die Kamera ist belegt'; } sonst wenn (Fehler.name === 'ÜberbeanspruchterFehler') { this.error = „FEHLER: Die Kamerainstallation ist ungeeignet“; } sonst wenn (Fehler.name === 'StreamApiNotSupportedError') { this.error = „FEHLER: Dieser Browser unterstützt die Stream-API nicht“; } } }, // Öffne die Kamera // openCamera() { // diese.Kamera = "hinten" // dies.qrcode = true // dies.show = true // }, // Kamera schließen // closeCamera() { // diese.Kamera = "aus" // dieser.qrcode = false // diese.show = false // }, // Taschenlampe einschalten // openFlash() { // Schalter (this.torchActive) { // Fall wahr: // this.torchActive = false // brechen // Fall falsch: // this.torchActive = true // brechen // } // }, // Kamera umkehren // switchCamera() { // // konsole.log(diese.kamera); // schalte (diese.Kamera) { // Fall 'vorne': // diese.Kamera = "hinten" // konsole.log(diese.Kamera) // brechen // Fall 'hinten': // diese.Kamera = "vorne" // konsole.log(diese.Kamera) // brechen // } // } }, }; </Skript> <Stilbereich> .Fehler { Schriftstärke: fett; Farbe: rot; } .cameraMessage { Breite: 100 %; Höhe: 60px; } .qr-scanner { Hintergrundbild: linearer Farbverlauf( 0 Grad, transparent 24%, rgba(32, 255, 77, 0.1) 25%, rgba(32, 255, 77, 0.1) 26%, transparent 27%, transparent 74%, rgba(32, 255, 77, 0.1) 75%, rgba(32, 255, 77, 0,1) 76%, transparent 77%, transparent ), linearer Gradient( 90 Grad, transparent 24%, rgba(32, 255, 77, 0.1) 25%, rgba(32, 255, 77, 0.1) 26%, transparent 27%, transparent 74%, rgba(32, 255, 77, 0.1) 75%, rgba(32, 255, 77, 0,1) 76%, transparent 77%, transparent ); Hintergrundgröße: 3rem 3rem; Hintergrundposition: -1rem -1rem; Breite: 100 %; /* Höhe: 100 %; */ Höhe: 100vh; /* Höhe: 288px; */ Position: relativ; Hintergrundfarbe: #1110; /* Hintergrundfarbe: #111; */ } /* .qrcode-stream-wrapper { Anzeige: Flex; Inhalt ausrichten: zentriert; Elemente ausrichten: zentrieren; Rand oben: 82px; klar: beides; } */ /* .qrcode-stream-wrapper >>> .qrcode-stream-camera { Breite: 213px; Höhe: 210px; klar: beides; Rand oben: 39px; } */ .qr-scanner .box { Breite: 213px; Höhe: 213px; Position: absolut; links: 50%; oben: 50 %; transformieren: übersetzen(-50 %, -50 %); Überlauf: versteckt; Rand: 0,1rem durchgezogen rgba(0, 255, 51, 0,2); /* Hintergrund: URL('http://resource.beige.world/imgs/gongconghao.png') keine Wiederholung Mitte Mitte; */ } .qr-scanner .txt { Breite: 100 %; Höhe: 35px; Zeilenhöhe: 35px; Schriftgröße: 14px; Textausrichtung: zentriert; /* Farbe: #f9f9f9; */ Rand: 0 automatisch; Position: absolut; oben: 70 %; links: 0; } .qr-scanner .myQrcode { Textausrichtung: zentriert; Farbe: #00ae10; } .qr-scanner .line { Höhe: berechnet (100 % – 2 Pixel); Breite: 100 %; Hintergrund: linearer Farbverlauf (180 Grad, RGBA (0, 255, 51, 0) 43 %, #00ff33 211 %); Rahmen unten: 3px durchgezogen #00ff33; transformieren: verschiebeY(-100%); Animation: Radarstrahl, 2 s, unendlich, abwechselnd; Animations-Timing-Funktion: kubische Bézierkurve (0,53, 0, 0,43, 0,99); Animationsverzögerung: 1,4 s; } .qr-scanner .box:nach, .qr-scanner .box:vorher, .qr-scanner .angle:nach, .qr-scanner .angle:vor { Inhalt: ''; Anzeige: Block; Position: absolut; Breite: 3vw; Höhe: 3vw; Rand: 0,2rem durchgehend transparent; } .qr-scanner .box:nach, .qr-scanner .box:vor { oben: 0; Rahmenfarbe oben: #00ff33; } .qr-scanner .angle:nach, .qr-scanner .angle:vor { unten: 0; Farbe des unteren Rahmens: #00ff33; } .qr-scanner .box:vorher, .qr-scanner .angle:vor { links: 0; Rahmenfarbe links: #00ff33; } .qr-scanner .box:nach, .qr-scanner .angle:nach { rechts: 0; Rahmenfarbe rechts: #00ff33; } @keyframes Radarstrahl { 0% { transformieren: verschiebeY(-100%); } 100 % { transformieren: übersetzenY(0); } } </Stil> (3) Führen Sie auf der Seite, die gescannten Code erfordert // QR-Code aus „@/components/qrcode.vue“ importieren; (4) Registrieren von Komponenten // Komponenten: 'vue-qrcode': QR-Code, }, (5) Komponenten verwenden // Rendern, wo der QR-Code angezeigt werden soll <vue-qrcode /> //Wenn das oben genannte nicht funktioniert, können Sie Folgendes verwenden: <vue-qrcode></vue-qrcode> Dies ist das Ende dieses Artikels über die QR-Code-Scanfunktion von Vue. Weitere relevante Inhalte zum Vue-QR-Code-Scan finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Analyse und Behandlung von Bildlaufleisten in HTML und eingebettetem Flash
>>: 4 Prinzipien für sauberes und schönes Webdesign
1. Übersicht MySQL-Version: 5.6.21 Download-Adres...
Der erste: Normalbetrieb WÄHLEN SUM(ddd) AS Anzah...
Wenn das Softwarepaket nicht vorhanden ist, kann ...
Laden Sie zunächst die Zip-Archivversion von der ...
Ich hatte dieses Problem in letzter Zeit beim Desi...
vue+el-upload Dynamischer Upload mehrerer Dateien...
Als ich kürzlich die Zabbix-Datenbank von MySQL 5...
Vor kurzem habe ich React Hooks in Kombination mi...
Es gibt zwei Arten von Linux-Systemzeiten. (1) Ka...
Inhaltsverzeichnis Gängige Array-Methoden Pop() u...
Warum hat CSS einen Kaskadierungsmechanismus? Da ...
Im vorherigen Artikel haben wir nach der Konfigur...
Heutige Aufgaben 1. Wahl der Linux-Distribution 2...
1. Verwenden Sie .gifs statt .jpgs. GIFs sind im ...
Vorwort Vor kurzem habe ich aus beruflichen Gründ...