页面和转图片操作代码是在vue里执行的, 这个页面嵌套在小程序的web-view里。
一些比较流行的库, dom-to-image、html2canvas都只能在浏览器里正常运行。
跑到小程序web-view里去执行, 转成base64都只能得到data:, 这几个字, 转成blob也是null。
页面和转图片操作代码是在vue里执行的, 这个页面嵌套在小程序的web-view里。
一些比较流行的库, dom-to-image、html2canvas都只能在浏览器里正常运行。
跑到小程序web-view里去执行, 转成base64都只能得到data:, 这几个字, 转成blob也是null。
在小程序的 web-view
中嵌套 Vue 页面并尝试使用 dom-to-image
或 html2canvas
这类库将页面转换为图片时,可能会遇到一些限制。这是因为小程序环境对 DOM 操作和某些 JavaScript API 的支持有限。
当在 web-view
中使用这些库时,可能会遇到以下问题:
web-view
中的环境可能不支持某些浏览器 API,导致库无法正常工作。针对这些问题,以下是一些可能的解决方案:
如果可能的话,考虑使用小程序原生的截图 API。这通常是最可靠和性能最好的方法。不过,这需要你将 Vue 页面转换为小程序的原生页面。
确保所有资源都在同一个域下,或调整服务器设置以允许跨域请求。
减少页面中的复杂元素和大量数据,以降低转换为图片时的内存消耗。
寻找专门为小程序环境设计的库或工具,这些工具可能更好地适应 web-view
的限制。
作为最后的解决方案,你可以考虑将页面发送到服务器,在服务器端使用无头浏览器(如 Puppeteer)进行截图,然后将图片返回给小程序。这种方法需要更多的设置和可能更高的成本,但通常可以绕过小程序环境的限制。
在小程序 web-view
中实现页面转图片功能可能会遇到一些挑战。最佳解决方案可能取决于你的具体需求和资源。如果可能的话,使用小程序原生API 或服务器端截图可能是最可靠的方法。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
Puppeteer了解一下,服务端截图, 我写的一个Demo,代码