vue 二维码长按保存和复制内容操作
作者:小虫1 发布时间:2024-04-27 16:04:39
标签:vue,二维码,保存,复制
效果图:
二维码用了 qrcode.vue
npm install qrcode.vue --save
复制内容用了 vue-clipboard2
npm install vue-clipboard2 --save
1.二维码保存功能:
<div class="qrcode">
<qrcode-vue
:size="qrcodeSize"
:value="shareUrl"
id="picture"
></qrcode-vue>
</div>
<div class="btn">
长按保存至相册
<img :src="qrcodeImgSrc" class="qrcode-img"/>
</div>
注意,qrcode.vue渲染的是一个canvas,canvas可以通过toDataURL方法转换为png图片。
长按保存功能是在长按上加一张图片,设置这张图片的opacity为0即可。
模拟a标签点击下载的方法在微信上有问题。
let myCanvas = document.getElementById('picture').getElementsByTagName('canvas')[0];
this.qrcodeImgSrc = myCanvas.toDataURL('image/png');
2.点击按钮,复制粘贴功能:
<div class="copy">
<span>{{shareUrl}}</span>
<span @click="doCopy">复制</span>
</div>
doCopy() {
this.$copyText(this.shareUrl).then(function (e) {
alert('Copied')
console.log(e)
}, function (e) {
alert('Can not copy')
console.log(e)
})
}
补充知识:vue插件qrcode实现手机端二维码保存功能
1.安装
npm install qrcode --save
2.页面引入并使用
利用<img src="">标签,实现二维码图片功能。然后长按保存即可。
<template>
<div class="qrcode">
<canvas id="canvas" style="display:none"></canvas>
<img :src="imgUrl"/>
<p>长按保存二维码图片</p>
</div>
</template>
import QRCode from 'qrcode'
export default {
data() {
return {
codes: '',
imgUrl:''
}
},
components: {
QRCode: QRCode
},
methods: {
useqrcode() {//生成二维码
let canvas = document.getElementById('canvas')
let url="http://www.baidu.com"
QRCode.toCanvas(canvas, url, function(error) {
if (error) { console.error(error) } else { console.log('success!'); }
})
this.saveImg()//保存图片
},
//保存图片
saveImg(){
let myCanvas = document.getElementsByTagName('canvas');
this.imgUrl=myCanvas[0].toDataURL('image/png')
},
},
mounted() {
this.useqrcode(); //生成二维码
}
}
</script>
来源:https://www.cnblogs.com/xiaochongchong/p/11089995.html


猜你喜欢
- 我们先用 new 关键字 来创建一个ArrayList 对象,给数组的item赋值,把数组初
- SQL Server数据库连接中常见的错误分析:一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生
- 1.认证与授权1.验证:身份验证是验证个人或设备标识的过程。身份验证过程之一是登录过程。注册网站后,您的信息(ID,密码,名称,电子邮件等)
- 我们直接先给出输出与预期不同的代码In[28]: a = [1,2,3,4,5,6]In[29]: for i in a: ...: &nb
- 本文实例讲述了javascript使用Blob对象实现的下载文件操作。分享给大家供大家参考,具体如下:Blob对象前言环境操作总结Blob是
- 最近,我有机会在一个真实的 Golang 场景中使用泛型,同时寻找与 Stream filter(Predicate<? super
- 最近使用Python 3.5写了一个GUI小程序,于是想将该写好的程序发布成一个exe文件,供自己单独使用。至于通过安装的方式使用该程序,我
- Python 堆栈堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 . 在堆栈中,
- 本文实例为大家分享了python多线程同时接受和发的具体代码,供大家参考,具体内容如下'''模仿qq 同时可以发送信
- 程序运算时往往需要数据,而数据的IO又往往需要时间传输,而常见的串行处理,是一个任务处理完成才接着处理新的任务, 其效率低下可想而知。 假如
- 如何在SQL2000的查询中使用XML-Data?具体程序如下:orders.asp<%@ Language=VBScrip
- 注:可视化工具 Navicat 15 for MySQL当我们某天忘记我们的root用户密码,登录不到数据库时,只需要修改root用户的密码
- <html><head><style>body{font-family:宋体;font-size:16p
- 对于一些快速迭代的产品来说,特别是移动端 C端产品,基于用户运营的目的,在 app首页给用户展示各种各样的弹窗是很常见的事情,在产品初期,由
- 1.在爬虫文件中只需要解析提取出图片地址,然后将地址提交给管道在管道文件对图片进行下载和持久化存储class ImgSpider(scrap
- 前言:在搭建开始前,我们先来梳理下web服务工作流程,先看下图:1、用户(PC)向web服务器发起http请求2、web服务器判断用户请求文
- 我就废话不多说了,大家还是直接看代码吧~import timeimport mathimport numpy as npdef timeit
- 本文为大家分享了mysql 8.0.15 安装配置方法,供大家参考,具体内容如下1.安装完成后在安装根目录下做一个my.ini文件my.in
- 支持向量机可以用来拟合线性回归。 相同的最大间隔(maximum margin)的概念应用到线性回归拟合。代替最大化分割两类目标是,最大化分
- 一个朋友需要,所以写了这两个,话不多说,看代码中国电信号段 133、149、153、173、177、180、181、189、199中国联通号