Vue2前端生成二維碼并實(shí)現(xiàn)掃碼跳轉(zhuǎn)完整教程
前言
在日常開發(fā)中,我們經(jīng)常會(huì)遇到這樣的需求:
在頁面生成一個(gè)二維碼
用戶用手機(jī)掃碼后,自動(dòng)跳轉(zhuǎn)到指定網(wǎng)頁
比如:
- 活動(dòng)推廣鏈接
- H5 頁面入口
- 掃碼登錄
- 分享邀請(qǐng)頁
一、實(shí)現(xiàn)原理
其實(shí)邏輯非常簡(jiǎn)單:
- 前端生成二維碼(內(nèi)容是一個(gè) URL)
- 手機(jī)掃碼 → 自動(dòng)識(shí)別二維碼中的 URL
- 瀏覽器打開該 URL
重點(diǎn):二維碼本質(zhì)上只是“存儲(chǔ)字符串(URL)”
二、安裝依賴
推薦使用輕量好用的庫:qrcode
npm install qrcode
三、基礎(chǔ)實(shí)現(xiàn)(Vue2)
代碼示例
<template>
<div>
<canvas ref="qrcodeCanvas"></canvas>
</div>
</template>
<script>
import QRCode from "qrcode";
export default {
name: "QrCodeDemo",
mounted() {
this.generateQRCode();
},
methods: {
generateQRCode() {
const url = "https://www.baidu.com"; // 掃碼后跳轉(zhuǎn)的地址
QRCode.toCanvas(
this.$refs.qrcodeCanvas,
url,
{
width: 200,
margin: 2
},
function (error) {
if (error) console.error(error);
console.log("二維碼生成成功!");
}
);
}
}
};
</script>效果說明
頁面加載后會(huì)生成一個(gè)二維碼:
用戶掃碼后 → 自動(dòng)打開 https://www.baidu.com
四、進(jìn)階用法
動(dòng)態(tài)生成二維碼(帶參數(shù))
const url = `https://yourdomain.com/page?id=123&type=vue`;
適用于:
- 活動(dòng)分享
- 用戶邀請(qǐng)
- 頁面跳轉(zhuǎn)
頁面直接展示二維碼圖片
<template>
<img :src="qrCodeUrl" />
</template>
<script>
import QRCode from "qrcode";
export default {
data() {
return {
qrCodeUrl: ""
};
},
mounted() {
QRCode.toDataURL("https://www.baidu.com").then(url => {
this.qrCodeUrl = url;
});
}
};
</script>五、常見問題(避坑指南)
1. URL 必須是完整路徑
錯(cuò)誤寫法:
/page?id=1
正確寫法:
https://yourdomain.com/page?id=1
2. localhost 無法掃碼訪問
如果二維碼內(nèi)容是:
http://localhost:8080
手機(jī)是打不開的!
解決方案:
- 使用局域網(wǎng) IP(如
http://192.168.1.100:8080) - 或部署到服務(wù)器
3. 微信掃碼限制
在微信中掃碼時(shí):
- 非 HTTPS 可能被攔截
- 某些域名可能被提示風(fēng)險(xiǎn)
建議統(tǒng)一使用 HTTPS
總結(jié)
到此這篇關(guān)于Vue2前端生成二維碼并實(shí)現(xiàn)掃碼跳轉(zhuǎn)的文章就介紹到這了,更多相關(guān)Vue2前端生成二維碼掃碼跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue?2?和?Vue?3?中?toRefs函數(shù)的不用用法
Vue?是一款流行的JavaScript?框架,用于構(gòu)建用戶界面,在Vue2和?Vue3中,都存在一個(gè)名為toRefs的函數(shù),但其行為在這兩個(gè)版本中有所不同,這篇文章主要介紹了Vue2和Vue3中toRefs的區(qū)別,需要的朋友可以參考下2023-08-08
vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案
這篇文章主要介紹了vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Vue兩個(gè)版本的區(qū)別和使用方法(更深層次了解)
在我們使用 vue時(shí),我們可以引用兩個(gè)不同版本的 Vue,分別是 Vue完整版(vue.js)和 Vue(vue.runtime.js )非完整版,那么它們的區(qū)別是什么呢,今天我們就來分析下這兩個(gè)不同版本之間的區(qū)別,一起看看吧2020-02-02
VueCli3構(gòu)建TS項(xiàng)目的方法步驟
這篇文章主要介紹了VueCli3構(gòu)建TS項(xiàng)目的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
vue動(dòng)態(tài)設(shè)置路由權(quán)限的主要思路
這篇文章主要給大家介紹了關(guān)于vue動(dòng)態(tài)設(shè)置路由權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)
這篇文章主要介紹了Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

