关于html2canvas的踩坑记录

本文记录了在小程序中利用html2canvas将页面转为海报功能的实现过程,包括如何处理base64图片保存、网络图片跨域与丢失、栈溢出等问题。通过设置html2canvas参数、转换图片格式以及利用小程序API解决实际开发中的挑战。
摘要由CSDN通过智能技术生成

需求背景

最近遇到一个需求,就是将页面数据转成海报的功能。因为是小程序开发,在小程序上实现需求比较麻烦,而且还很容易造成小程序崩溃。于是打算用小程序组件webview内嵌H5的方式实现需求,自然想到了html2canvas这个插件。

解决方案

在H5端使用html2canvas将界面转成canvas,然后保存为base64图片格式,通过小程序JSDK把生成的base64格式的图片作为参数,跳转到小程序内到界面,用小程序组件image展示和保存到系统相册。然而,理想很丰满,现实有点骨感。

功能实现过程中遇到的问题

1、小程序组件image标签虽然能展示图片,但是保存到系统相册成为了一个难点。因为小程序图片预览Api不支持base64格式的图片(虽然在开发工具上效果有),无法使用预览Api的方式保存图片到相册,所以只能找其他方法。最终想到了小程序getFileSystemManager这个Api。

base64src(base64data){
   
  	const fsm = wx.getFileSystemManager();
    const FILE_BASE_NAME = 'tmp_base64src';
    return new Promise((resolve, reject) => {
   
      const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
       if (!format) {
   
           reject(new Error('ERROR_BASE64SRC_PARSE'));
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值