Implementierung der QR-Code-Scanfunktion über Vue

Implementierung der QR-Code-Scanfunktion über Vue

Hinweis

Auf 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! ! ! ! !

beschreiben

Realisieren Sie die Code-Scan-Funktion über Vue

Referenzdokument: vue-qrcode-reader Gehen Sie zur offiziellen Website –> offizielles Dokument

Effektanzeige

Bildbeschreibung hier einfügen

Implementierungsschritte:

Schritt 1 (Plugin installieren)

npm installieren --save vue-qrcode-reader

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
(2) Implementierung des Codes

// 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:
  • Vue implementiert QR-Code-Scanfunktion (mit Stil)
  • Vue - Beispiel für die Front-End-Generierung eines QR-Codes
  • So generieren Sie dynamisch QR-Codes in Vue
  • Vue WeChat scannt QR-Codes, aber Apple kann nur Bilder speichern (Lösung)
  • So verwenden Sie Canvas in Vue, um die Synthese von QR-Code und Bildposter zu realisieren
  • Detailliertes Verständnis der Vue-Methode zum Generieren von QR-Codes mit vue-qr

<<:  Analyse und Behandlung von Bildlaufleisten in HTML und eingebettetem Flash

>>:  4 Prinzipien für sauberes und schönes Webdesign

Artikel empfehlen

Detaillierte Schritte zur Installation und Konfiguration von MySQL 5.6.21

1. Übersicht MySQL-Version: 5.6.21 Download-Adres...

MySQL 5.7.19 neueste Binärinstallation

Laden Sie zunächst die Zip-Archivversion von der ...

vue+el-upload realisiert den dynamischen Upload mehrerer Dateien

vue+el-upload Dynamischer Upload mehrerer Dateien...

So erhalten und verwenden Sie die Zeit im Linux-System

Es gibt zwei Arten von Linux-Systemzeiten. (1) Ka...

Detaillierte Erläuterung gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis Gängige Array-Methoden Pop() u...

Eine kurze Diskussion über den CSS-Kaskadierungsmechanismus

Warum hat CSS einen Kaskadierungsmechanismus? Da ...

React verwendet Routing, um zur Anmeldeoberfläche umzuleiten

Im vorherigen Artikel haben wir nach der Konfigur...

Methoden und Techniken zum schnellen Anzeigen von Webseitenbildern

1. Verwenden Sie .gifs statt .jpgs. GIFs sind im ...