npm install qrcodejs2 --save
這里的效果可以實現在安卓或者蘋果手機支持長按功能掃描。
html
<div id="qrcode" class="qrcode_img" style="width: 151px;height:151px;z-index: 4;display: none"></div> <img :src="src" class="qrcode_img" style="width: 151px;height:151px;z-index: 4;" alt="">
一開始我沒有用img,在安卓手機不能長按識別出來,就蘋果可以。 然后呢, 按我寫法就可以了。 原理就是用拿到插件生成img 的 src 賦值到img就可以。
script
import QRCode from "qrcodejs2" export default { data() { return { code_data: '恭喜您,獲取神獸朝里一枚!哈哈哈哈', // 接二維碼的變量 src: '', } }, methods: { // 生成二維碼 qrcode () { let that = this; let qrcode = new QRCode('qrcode', { width: 151, height: 151, // 高度 text: this.code_data, // 二維碼內容 // render: 'canvas' , // 設置渲染方式(有兩種方式 table和canvas,默認是canvas) // background: '#f0f', // 背景色 // foreground: '#ff0' // 前景色 }) setTimeout(()=>{ var mycanvas1=document.getElementsByTagName('canvas')[0]; //將轉換后的img標簽插入到html中 var img=this.convertCanvasToImage(mycanvas1); },300) }, convertCanvasToImage(canvas) { //新Image對象,可以理解為DOM var image = new Image(); // canvas.toDataURL 返回的是一串Base64編碼的URL,當然,瀏覽器自己肯定支持 // 指定格式 PNG image.src = canvas.toDataURL("image/png"); this.src = canvas.toDataURL("image/png") return image; }, }, mounted() { this.$nextTick (function () { this.qrcode(); }) this.get_stamps() this.wx_share() }, components: { }, }