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

vue-pdf realisiert Online-Dateivorschau

In diesem Artikelbeispiel wird der spezifische Co...

Einfache Implementierung von HTML zum Erstellen eines persönlichen Lebenslaufs

Lebenslauf-Code: XML/HTML-CodeInhalt in die Zwisc...

Einführung in die MySQL-Operatoren <> und <=>

<> Operator Funktion: Zeigt an, dass es ung...

Vue-Statusverwaltung: Verwendung von Pinia statt Vuex

Inhaltsverzeichnis 1. Was ist Pinia? 2. Pinia ist...

HTML-Hyperlinks im Detail erklärt

Hyperlink Hyperlinks sind die am häufigsten verwen...

jQuery-Plugin für ein nahtloses Karussell

Ein nahtloses Karussell ist ein sehr häufiger Eff...

Eine einfache Möglichkeit, Desktop-Exe-Programme auf einer Webseite aufzurufen

Dieser Artikel stellt hauptsächlich vor, wie Deskt...

Beispiele für die Verwendung der Operatoren && und || in JavaScript

Inhaltsverzeichnis Vorwort && Operator ||...