我使用插件“vue-qrcode”为用户生成二维码,以便为他们的公共个人资料链接生成二维码,以便他们可以在名片上分享。
现在的想法是通过一个按钮让用户有可能下载二维码,并通过另一个按钮将二维码复制到剪贴板,以便更容易通过邮件发送(特别是对于智能手机用户)。
问题是:我不知道如何下载或复制二维码。有人知道如何复制或下载二维码吗?目前我使用“vue-clipboard2”来复制链接等,但似乎无法复制图像。
我使用下面的代码在我们的网站上显示二维码:
<template>
<qrcode-vue
style = "cursor: pointer;"
:value = "linkToProfile"
size = 160
level = "M"
:background = "backgroundcolor_qrcode"
:foreground = "color_qrcode"
></qrcode-vue>
</template>
<script>
import Vue from 'vue'
import QrcodeVue from 'qrcode.vue'
Vue.component('qrcode-vue', QrcodeVue )
export default {
data: () => ({
linkToProfile: "http://www.example.com/johnDoe",
})
</script>
谢谢 - 克里斯蒂安
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我找到了解决方法。解决方案如下:
模板区域:
<qrcode-vue id="qrblock" :value = "linkToSki" size = 220 level = "M" ref="qrcode" ></qrcode-vue>功能区域:
// -- 复制/下载二维码的功能区域 - 结束 --- function selectText(element) { if (document.body.createTextRange) { const range = document.body.createTextRange(); range.moveToElementText(element); range.select(); } else if (window.getSelection) { const selection = window.getSelection(); const range = document.createRange(); range.selectNodeContents(element); selection.removeAllRanges(); selection.addRange(range); } } function copyBlobToClipboardFirefox(href) { const img = document.createElement('img'); img.src = href; const div = document.createElement('div'); div.contentEditable = true; div.appendChild(img); document.body.appendChild(div); selectText(div); const done = document.execCommand('Copy'); document.body.removeChild(div); return done; } function copyBlobToClipboard(blob) { // eslint-disable-next-line no-undef const clipboardItemInput = new ClipboardItem({ 'image/png' : blob }); return navigator.clipboard .write([clipboardItemInput]) .then(() => true) .catch(() => false); } function downloadLink(name, href) { const a = document.createElement('a'); a.download = name; a.href = href; document.body.append(); a.click(); a.remove(); } // -- 复制/下载二维码的功能区域 - 结束 ---