html5-qrcode前端打開攝像頭掃描二維碼功能

實現的效果如圖所示,全屏打開并且掃描到二維碼后彈窗提醒,主要就是使用html5-qrcode這個依賴庫,html5-qrcode開源地址:GitHub - mebjas/html5-qrcode: A cross platform HTML5 QR code reader. See end to end implementation at: https://scanapp.org

使用文檔:Getting started | ScanApp

安裝依賴:

pnpm install --save-dev html5-qrcode

彈窗提示我用的vant這個ui庫,開源地址:GitHub - youzan/vant: A lightweight, customizable Vue UI library for mobile web apps.

然后在項目中使用,我使用的是vue:

<template><div class="scanCode"><div id="reader"></div></div>
</template><script setup lang="ts">
import { ref } from 'vue'
import { showToast } from 'vant'
import { Html5Qrcode } from 'html5-qrcode'const codeContent = ref('1024')// This method will trigger user permissions
Html5Qrcode.getCameras().then((devices) => {// console.log(devices)const html5QrCode = new Html5Qrcode('reader')const width = window.innerWidthconst height = window.innerHeightconst aspectRatio = width / heightconst reverseAspectRatio = height / widthconst mobileAspectRatio =reverseAspectRatio > 1.5? reverseAspectRatio + (reverseAspectRatio * 12) / 100: reverseAspectRatioif (devices && devices.length) {// .. use this to start scanning.html5QrCode.start({ facingMode: { exact: 'environment' } },{fps: 10, // Optional, frame per seconds for qr code scanningaspectRatio: aspectRatio + 1,qrbox: { width: 250, height: 250 }, // Optional, if you want bounded box UIvideoConstraints: {facingMode: 'environment',aspectRatio:width < 600 ? mobileAspectRatio : aspectRatio,},},(decodedText, decodedResult) => {// do something when code is readconsole.log('decodedText', decodedText)// console.log('decodedResult', decodedResult)codeContent.value = decodedTextshowToast(decodedText)},(errorMessage) => {// parse error, ignore it.// console.log('parse error, ignore it.', errorMessage)}).catch((err) => {// Start failed, handle it.console.log('Start failed, handle it.')})}}).catch((err) => {// handle errconsole.log(err)})
</script><style lang="scss" scoped>
.scanCode {width: 100%;height: 100vh;display: flex;flex-direction: column;background: rgba(0, 0, 0);#reader {top: 50%;left: 0;transform: translateY(-50%);}
}
</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74320.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cpp-友元

理解 C 中的友元&#xff08;Friend&#xff09; 在 C 語言中&#xff0c;封裝&#xff08;Encapsulation&#xff09; 是面向對象編程的重要特性之一。它允許類將數據隱藏在私有&#xff08;private&#xff09;或受保護&#xff08;protected&#xff09;成員中&#xff0c;…

JavaWeb基礎-HTTP協議、請求協議、響應協議

一. HTTP協議 1. HTTP協議&#xff1a;Hyper Text Transfer Protocol&#xff0c;超文本傳輸協議&#xff0c;規定了瀏覽器和服務器之間數據傳輸的規則 2. HTTP協議特點&#xff1a; ① 基于TCP協議&#xff1a;面向鏈接&#xff0c;安全 ② 基于請求-響應模型的&#xff1a;一…

search_fields與filterset_fields的使用

在Django中&#xff0c;search_fields 和 filterset_fields 可以在視圖類中使用&#xff0c;尤其是在 Django REST Framework (DRF) 中。它們分別用于實現搜索和過濾功能。以下是它們在視圖類中的具體使用方法。 1. search_fields 在視圖類中的使用 search_fields 是 DRF 中 S…

數據建模流程: 概念模型>>邏輯模型>>物理模型

數據建模流程 概念模型 概念模型是一種高層次的數據模型&#xff0c;用于描述系統中的關鍵業務概念及其之間的關系。它主要關注業務需求和數據需求&#xff0c;而不涉及具體的技術實現細節。概念模型通常用于在項目初期幫助業務人員和技術人員達成共識&#xff0c;確保對業務需…

在 Ubuntu 中用 Docker 安裝 RAGFlow

一、安裝 1.前提條件 CPU > 4 核 RAM > 16 GB Disk > 50 GB Docker > 24.0.0 & Docker Compose > v2.26.1 安裝docker&#xff1a;在Ubuntu中安裝Docker并配置國內鏡像 2.設置 vm.max_map_count #設置 vm.max_map_count 不小于 262144# 查看 sysctl vm.…

Java隨機生成n位驗證碼

Java學習筆記 今天寫一個隨機生成n位的驗證碼&#xff0c;包含字母大小寫和數字&#xff0c;直接見代碼。 package com.itheima.hello;// 生成一個隨機位數的驗證碼 public class ScannerDemo1 {public static void main(String[] args){System.out.println(getCode(4));Syst…

go復習目錄

全部都是博主的學習筆記&#xff0c;放著鏈接用的&#xff0c;自己收藏&#xff0c;包含基礎內容、go三方包、vue、數據結構、web框架、設計模式、docker、go連接kafka、redis、grpc、中間件 文章目錄 基礎內容go三方包vue數據結構web框架設計模式dockergo連接kafkaredisgrpc中…

23種設計模式-創建型模式-抽象工廠

文章目錄 簡介場景問題1. 風格一致性失控2. 對象創建硬編碼3. 產品族管理失效 解決總結 簡介 抽象工廠是一種創建型設計模式&#xff0c;可以生成相關對象系列&#xff0c;而無需指定它們的具體類。 場景 假設你正在寫一個家具店模擬器。 你的代碼這些類組成&#xff1a; 相…

案例:網絡命名空間模擬隔離主機場景

場景描述 假設我們需要在同一臺物理機上模擬兩臺獨立的主機&#xff08;Host A 和 Host B&#xff09;&#xff0c;它們分別位于不同的網絡命名空間中&#xff0c;并通過虛擬以太網對&#xff08;veth pair&#xff09;進行通信。目標是展示網絡命名空間的隔離性和跨命名空間的…

新聞發布時間抽取(二)

1. 再論抽取方法 在前一期實驗中&#xff0c;對gne組件進行分析和完善&#xff0c;對三種時間抽取的方法進行了實驗對比。 在對抽取結果進行個例分析的過程中&#xff0c;我發現此前實驗存在幾個問題&#xff1a; 抽取的1000篇新聞存在一定的重復&#xff0c;經過ID去重大約減…

算法基礎——棧

一、棧的概念 棧是?種只允許在?端進?數據插?和刪除操作的線性表。 進?數據插?或刪除的?端稱為棧頂&#xff0c;另?端稱為棧底。不含元素的棧稱為空棧。進棧就是往棧中放?元素&#xff0c;出棧就是將元素彈出棧頂。 二、棧的模擬實現 1. 創建 本質還是線性表&#…

Android11至15系統定制篇

Android 11至15系統定制核心要點解析 一、Android 11關鍵定制特性 ?分區存儲強制化? 公共目錄&#xff08;如Downloads、Pictures&#xff09;與應用專屬目錄分離&#xff0c;應用更新后無法通過requestLegacyExternalStorage繞過限制?1。需申請MANAGE_EXTERNAL_STORAGE權限…

macOS 使用 enca 識別 文件編碼類型(比 file 命令準確)

文章目錄 macOS 上安裝 enca基本使用起因 - iconv關于 enca安裝 Encaenca & enconv 其它用法 macOS 上安裝 enca brew install enca基本使用 enca filepath.txt示例 $ enca 動態規劃算法.txt [0] Simplified Chinese National Standard; GB2312CRLF line terminat…

線段樹與掃描線 —— 詳解算法思想及其C++實現

目錄 一、線段樹&#xff08;Segment Tree&#xff09; 基本概念 結構 操作 示例代碼 二、掃描線&#xff08;Sweep Line&#xff09; 基本概念 應用場景 示例代碼&#xff08;矩形面積并集&#xff09; 三、總結 一、線段樹&#xff08;Segment Tree&#xff09; 基本…

匯編代碼中嵌入回調函數的優化說明

一、概述 在 PowerPC 的匯編代碼中&#xff0c;我們需要實現調用 C 函數&#xff08;例如回調函數&#xff09;&#xff0c;并傳遞參數。本文將詳細介紹如何通過一系列步驟完成這一目標&#xff0c;包括代碼示例和詳細的注釋。 二、調用 C 函數的基本步驟及代碼 1. 保存工作寄…

Uni-App 雙欄聯動滾動組件開發詳解 (電梯導航)

本文基于提供的代碼實現一個左右聯動的滾動組件&#xff0c;以下是詳細的代碼解析與實現原理說明&#xff1a; <!--雙欄聯動滾動組件 - 技術解析功能特性&#xff1a;1. 左側導航欄與右側內容區雙向聯動2. 自適應容器高度3. 平滑滾動定位4. 動態內容位置計算 --> <te…

軟考復習-傳輸介質與編碼

傳輸介質 雙絞線 傳輸距離100一200m&#xff0c;即網線&#xff0c;有多種分類 UTP非屏蔽雙絞線 STP屏蔽雙絞線 線序標準有兩種為&#xff1a; T568A標準&#xff1a;綠白、綠、橙白、藍、藍白、橙、棕白、棕 T568B標準&#xff1a;橙白、橙、綠白、藍、藍白、綠、棕白、…

論文閱讀筆記:Denoising Diffusion Probabilistic Models (3)

論文閱讀筆記&#xff1a;Denoising Diffusion Probabilistic Models (1) 論文閱讀筆記&#xff1a;Denoising Diffusion Probabilistic Models (2) 論文閱讀筆記&#xff1a;Denoising Diffusion Probabilistic Models (3) 4、損失函數逐項分析 可以看出 L L L總共分為了3項…

PyTorch 面試題及參考答案(精選100道)

目錄 PyTorch 的動態計算圖與 TensorFlow 的靜態計算圖有何區別?動態圖的優勢是什么? 解釋張量(Tensor)與 NumPy 數組的異同,為何 PyTorch 選擇張量作為核心數據結構? 什么是 torch.autograd 模塊?它在反向傳播中的作用是什么? 如何理解 PyTorch 中的 nn.Module 類?…

#C8# UVM中的factory機制 #S8.1.4# 約束的重載

今天,復習一下《UVM實戰》一書中的 關于約束的重載 章節學習。 一 問題引導 文件:src/ch8/section8.1/8.1.2/rand_mode/my_transaction.sv4 class my_transaction extends uvm_sequence_item; …17 constraint crc_err_cons{18 crc_err == 1b0;19 }20 const…