html2canvas截图相关的问题

真几把坑

需求

微信端的H5活动
  • 获取到用户头像
  • 生成关注公众号使用的带参数的二维码
  • 通过答题生成一张海报,海报长按保存,保存这张海报到手机。
  • 用户把这张图片发送给朋友,朋友点开图片识别图中的二维码。进入公众号执行相关操作。

思路

  • 先把整个布局做好
  • 布局中把获取到的微信头像和二维码用img加载好,放在<poster></poster>
  • 用html2canvas截取<poster>,生成图片

坑来了。草

html2canvas截图的跨域问题。这个不多说了。网上一大堆。没几个好用的。

我用过的方法如下,如果有看到的就别用了。
  • 把微信头像的src转成base64位编码。(http://thirdwx.qlogo.cn/类似这个地址, 可以用canvas画。可以画出来。网上就好多,代码拷贝就能用),转换成base64之后,用html2canvas亲测可以截出来。
  • 微信的二维码也用上面的方式,用canvas就不能转base64了。后来找到qrcode.js,转成功了。转成功了之后,发现html2canvas截不了了。报跨域错误。因为mp.weixin.qq.com开头的域名不支持跨域访问。这几把就坑了。网上说的用html2canvas自带参数useCORS: true,这个是求用没有。不知道你是不是当真用这个解决了问题。反正我是没解决!!!!

那不多比比了,解决方案如下:

  • 第一种:
    把前端代码要部署到的服务器里设置nginx代理。代理到mp.weixin.qq.com,就不涉及到跨域问题。
  • 第二种:
    把获取到的微信二维码地址发送给后台。让后台出个接口。给你返回一个服务器域名的地址,(就是相当于把二维码下载到服务器磁盘,再给你一个服务器请求图片的地址)

补充

  • 如果我说的这两种的其中任何一种解决不了。给我你的微信号。开视频。我当你面吃狗屎!!!
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,328评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,515评论 2 59
  • 本文适用人群 需要在微信wap页开发分享海报功能的前端程序员们 想要了解html2canvas库的吃瓜群众 挣扎在...
    朝颜vivian阅读 13,459评论 4 17
  • 好久没更新了,回来了突然不知道说啥 不过你们应该都没有发现 毕竟没人留言也没有掉粉 这束花拍了好几遍了,七夕也算应...
    每颗橙子阅读 1,324评论 0 0
  • 这本书的确是软件工程领域一本再经典不过的书籍,在尚未开始学习编程的时候便听说过这本书,大约是从萧瓜的答案里。在刚参...
    古二白阅读 4,108评论 0 0

友情链接更多精彩内容