vue 微信公众号H5页面截取长图并分享给朋友

截图:使用dom-to-image 或者 html2canvas
分享:可以使用右上角分享 或者 自定义分享wx.updateAppMessageShareData

截图dom-to-image 并分享

请注意,dom-to-image库在将DOM元素转换为图片时可能不会包括所有的CSS样式,因为它是基于SVG来生成的,而SVG可能无法完全匹配原始DOM元素的样式。此外,如果页面中包含大量的动态内容或者是iframe,转换过程可能也会比较复杂。

npm install dom-to-image
<template><div><div class="page" id="my-node"><div class="title">日报</div></div><button class="btn-box" @click="onShare">一键分享长图至微信群</button><!-- <img :src="img" v-if="img" /> --></div>
</template><script>
import domToImage from 'dom-to-image'
export default {name: "daily",data () {return {img: ""}},mounted () {this.query()},methods: {onShare () {let node = document.getElementById('my-node');// 生成png图片// domtoimage.toPng(node)//   .then((dataUrl) => {//     this.img = dataUrl;//     console.log(dataUrl, 'dddd')//   })//   .catch(function (error) {//     console.error('oops, something went wrong!', error);//   });// 生成文件,手机上操作下载后 会打开图片,点击右上角三个点就可以分享给朋友domToImage.toBlob(node).then(function (blob) {// 这里你可以处理blob对象,例如使用URL.createObjectURL来生成一个可以在下载中使用的URLconst url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = 'page-image.png'; // 设置下载的文件名document.body.appendChild(a);a.click(); // 模拟点击下载链接document.body.removeChild(a);// 释放URL对象URL.revokeObjectURL(url);});},query () {// 请求数据}}
};
</script>
<style>
.page {padding: 10px 10px 60px 10px;background: #f3f3f3;
}
.title {text-align: center;margin: 20px 0 10px 0;font-size: 13px;
}
.des {background-color: #3f61c94f;padding: 6px 0px;margin: 10px 0;
}
.btn-box {width: 100%;height: 40px;line-height: 40px;color: #fff;background-color: #224799;border: none;margin-top: 40px;position: fixed;bottom: 0;left: 0;right: 0;
}
</style>

html2canvas截图并分享

如果你想要将整个页面转换为图片,通常需要使用到 html2canvas库,它可以将整个页面渲染为canvas元素,然后转换为图片。但是这通常会导致图片文件大小较大,并且可能不会包括页面中的某些内容,因为html2canvas渲染的是页面的布局,而不是内容。

npm install html2canvas

<template><div><div class="page" id="my-node" ref="imageToFile"><div class="title">日报</div></div><button class="btn-box" @click="onShare">一键分享长图至微信群</button><!-- <img :src="img" v-if="img" /> --></div>
</template><script>import html2canvas from 'html2canvas'export default {data() {return {img: ""}},mounted() {},methods: {onShare() {// html2canvas(this.$refs.imageToFile, {//   width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,//   height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,// }).then((canvas) => {// 第一个参数是需要生成截图的元素,第二个是自己需要配置的参数,宽高等//   this.img = canvas.toDataURL('image/png');// })let element = document.getElementById('my-node');html2canvas(element).then(function(canvas) {// 将canvas转换为blob对象canvas.toBlob(function(blob) {// 创建一个下载链接const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = 'page-image.png'; // 设置下载的文件名document.body.appendChild(a);a.click(); // 模拟点击下载链接document.body.removeChild(a);// 释放URL对象URL.revokeObjectURL(url);}, 'image/png'); // 设置图片格式为png});},},}
</script>
<style>
.page {padding: 10px 10px 60px 10px;background: #f3f3f3;
}
.title {text-align: center;margin: 20px 0 10px 0;font-size: 13px;
}
.des {background-color: #3f61c94f;padding: 6px 0px;margin: 10px 0;
}
.btn-box {width: 100%;height: 40px;line-height: 40px;color: #fff;background-color: #224799;border: none;margin-top: 40px;position: fixed;bottom: 0;left: 0;right: 0;
}
</style>

自定义分享

wx.ready(function () {   //需在用户可能点击分享按钮前就先调用wx.updateAppMessageShareData({ title: '', // 分享标题desc: '', // 分享描述link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '', // 分享图标success: function () {// 设置成功}})
}); 

关于自定义分享 这里有位大佬的文章写的很详细可以看看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习300问】104、残差网络是怎么起作用的?

残差网络&#xff08;Residual Network&#xff0c;简称ResNet&#xff09;诞生是为了解决深度神经网络的训练困难性问题。深度神经网络在图像分类等任务上取得了重大突破&#xff0c;但随着网络层数的增加&#xff0c;训练变得更加困难。 一、神经网络深度过深会出现…

用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法

ps&#xff1a;截止到今天2023.4.2&#xff0c;kali和vps的docker拉取的vulfocus镜像会有版本的区别&#xff0c;虽然都是拉取的最新版&#xff0c;vps上镜像为3个月以前&#xff0c;kali上为16个月以前&#xff0c;所以在修改 views.py 文件时&#xff0c;可能会发现文件内容不…

国家首批20个“数据要素×”典型案例发布,珈和科技助力金融、气象两案例入榜

5月24日&#xff0c;国家数据局会同生态环境部、交通运输部、金融监管总局、中国科学院、中国气象局、国家文物局、国家中医药局等部门在第七届数字中国峰会主论坛上发布首批20个“数据要素”典型案例。 其中&#xff0c;珈和科技以其专业的产品和服务助力金融服务领域的浙江网…

享元模式具体实例(含代码)

学习目标&#xff1a; 了解享元模式 学习内容&#xff1a; 享元模式&#xff08;Flyweight Pattern&#xff09;在现实生活中可以用来优化资源的使用&#xff0c;尤其是在需要大量创建相似对象的场景下。一个经典的现实生活例子是文本编辑器中的字符对象管理。 文本编辑器中的…

GDPU 操作系统 天码行空13

文章目录 ❌ TODO&#xff1a;本文仅供参考&#xff0c;极有可能有误1.生产者消费者问题&#xff08;信号量&#xff09;&#x1f496; ProducerConsumerExample.java&#x1f3c6; 运行结果 &#x1f496; ProducerConsumerSelectiveExample.java&#x1f3c6; 运行结果 2.实现…

【UnityShader入门精要学习笔记】第十五章 使用噪声

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 使用噪声上…

【JS基础语法04】运算符分类以及运用

一&#xff1a;赋值运算符 1 类型 赋值运算符包括以下&#xff1a;、、-、*、/ 2 原理 &#xff0c;是将等号右边的数赋值给左边以为例(-、*、/和运算逻辑是相同的) let num 5 num2 等价于 let num 5 numnum2 //num7 二&#xff1a;一元运算符 1怎么判断运算符是几元…

多条文本转二维码怎么做?一键批量建码的使用技巧

怎么快速的制作多条文本信息的二维码&#xff1f;随着二维码的广泛使用&#xff0c;现在很多内容都可以通过生成二维码扫码的方式来获取信息&#xff0c;其他文本二维码就是比较常用的一种类型。那么当需要将多条不同的文本内容每条单独生成二维码时&#xff0c;有什么方法可以…

【Uniapp微信小程序】自定义水印相机、微信小程序地点打卡相机

效果图 template 下方的image图片自行寻找替换! <template><view><camerav-if="!tempImagePath && cameraHeight !== 0":resolution="high":frame-size="large":device-position="device":flash="flas…

JDBC基础知识

JDBC&#xff08;Java Database Connectivity&#xff09;是Java应用程序与数据库之间的连接API。它定义了一套标准&#xff0c;使得Java应用程序能够访问各种关系型数据库。JDBC API提供了许多方法&#xff0c;使得开发人员可以使用Java代码来连接数据库、执行SQL语句、处理查…

2台倍福PLC ADS通信配置

倍福PLC的入门应用介绍请参考下面文章链接: 1、倍福PLC简单入门 从零开始倍福TwinCAT 3 PLC 的一个简单项目-CSDN博客文章浏览阅读34次。这篇文章我们介绍如何开始一个简单的倍福PLC项目。https://rxxw-control.blog.csdn.net/article/details/139124427 1、配置路由 2、…

笔记92:离散LQR控制器详细推导

1&#xff09;离散LQR的推导原理&#xff1a; 拉格朗日乘子法都是在等式约束下用的&#xff1b; 对这个性能函数J运用拉格朗日乘子法后&#xff0c;得到的函数是二次型函数&#xff08;即转化为了最优化控制问题&#xff09;&#xff0c;二次型函数只有一个极值点而且是极小值点…

机器视觉分析在加油站安全中的应用:使用手机检测、打电话行为识别

在加油站等高危场所&#xff0c;禁止使用手机是为了防止潜在的火灾和爆炸风险。手机在使用过程中可能产生电火花&#xff0c;而在加油站这种易燃易爆环境中&#xff0c;任何电火花都可能引发严重的安全事故。因此&#xff0c;加油站禁止使用手机是保障安全生产的重要措施。基于…

Unity3D 基于ECS的技能冷却系统设计与实现详解

前言 ECS&#xff08;Entity-Component-System&#xff09;是一种新的游戏开发架构&#xff0c;它将游戏对象分解为实体&#xff08;Entity&#xff09;、组件&#xff08;Component&#xff09;和系统&#xff08;System&#xff09;&#xff0c;使游戏开发更加灵活和高效。 …

FDW(Foreign Data Wrapper)

在上一篇博客里&#xff0c;最末尾提到了 FDW。 FDW 到底是什么呢&#xff1f; 标准 FDW&#xff08;Foreign Data Wrapper&#xff09;遵循了 SQL/MED 标准&#xff0c;标准全称&#xff1a;ISO/IEC 9075-9 Management of External Data (SQL/MED) 2003 年&#xff0c;SQL…

小程序内的分包与数据共享

一:数据共享 小程序内的数据共享和vue当中不一样,vue当中的vue实例可以使得所有的组件都能this.store 但是小程序它只有page对象,和组件实例对象.对于vue而言,vue实例可以使得添加的组件都有. 但是page对象页面对象,不能使得页面内部有.只能使得这个页面内能访问.vue实例,会…

Pooling Sequencing

1、混合(Pooling)样本测序研究 https://www.jianshu.com/p/19ce438ccccf 1.1 混合测序基础 测序成本虽然下降了,但对于植物育种应用研究来说还是很高,动不动就上百群体,小小植物个体价值又低,测完了很可能后面就用不到了。这时,混合样本测序是一种省钱的好办法。 混池…

Azure Chatgpt demo部署——本地CentOS Docker

参见上一篇 http://t.csdnimg.cn/JcyfM 由于本地部署环境&#xff0c;与之前系统、网络、配置等环境不同&#xff0c;可能会遇见一些新的问题。 取2023年8月27日代码 git checkout -b a02796b063381c10ca9ca8189590b289a4d09129 由于本地情况的网络等环境不太一样&#xff0c…

使用PyAutoGUI识别PNG图像并自动点击按钮

在自动化测试、任务批处理等场景中,我们常常需要控制GUI程序的鼠标键盘操作。PyAutoGUI就是一个非常方便的Python模块,可以帮助我们实现这些操作。今天我们就来看看如何使用PyAutoGUI识别屏幕上的PNG图像,并自动点击图像所在位置。 C:\pythoncode\new\autoguirecongnizepng.py …

超结MOS在全桥电路上的应用-REASUNOS瑞森半导体

一、前言 全桥电路定义 全桥电路是一种常见的电子电路&#xff0c;由四个开关管和一个负载组成&#xff0c;可将直流电转换为交流电。 全桥电路的应用领域 全桥电路广泛应用于电力电子领域&#xff0c;如开关电源、变频器、逆变器、电动汽车、工业自动化等领域 。在电路中&…