h5实现内嵌微信小程序&支付宝 --截图保存海报分享功能

1.首先需要正常写你需要展示的页面

2.下载html2canvas

复制代码
import html2canvas from 'html2canvas';

3.封装一个公共的方法

复制代码
export const screenshot = async () => {
  const target = document.querySelector('#capture-target');
  const canvas = await html2canvas(target, {
    useCORS: true, // 允许跨域图片
    allowTaint: true,
    scale: 2, // 照片质量
    allowTaint: false,
  });
  const imgUrl = canvas.toDataURL('image/png');
  return imgUrl;
};

4.拿到图片的imgUrl 再用一个弹框打开 提醒用户长按保存

使用h5会经常遇到跨域的问题,因为我们展示img天生具有跨域的属性,但是一旦使用html2canvas 跨域会经常见到,所以一定要后端支持,如果图片保存在云盘 可以设置

允许跨域

5.保存还有一个问题 就是图片模糊可能会不清晰 这时候需要把uni-app中的

<image>换成原生的<img>

不要使用图片背景 直接使用图片

相关推荐
json{shen:"jing"}20 小时前
js收官总概述
开发语言·python
froginwe1120 小时前
Java 文档注释
开发语言
Zsy_05100320 小时前
【C++】stack、queue、容器适配器
开发语言·c++
一起努力啊~20 小时前
算法刷题--栈和队列
开发语言·算法
万行20 小时前
SQL进阶&索引篇
开发语言·数据库·人工智能·sql
打工的小王20 小时前
java并发编程(六)CountDownLatch和回环屏障CyclicBarrier
java·开发语言
VT.馒头20 小时前
【力扣】2694. 事件发射器
前端·javascript·算法·leetcode·职场和发展·typescript
星火开发设计20 小时前
命名空间 namespace:解决命名冲突的利器
c语言·开发语言·c++·学习·算法·知识
小北方城市网20 小时前
RabbitMQ 生产级实战:可靠性投递、高并发优化与问题排查
开发语言·分布式·python·缓存·性能优化·rabbitmq·ruby