在使用html-to-image 的时候,安卓机没有任何问题,ios,使用toSvg可以在页面上展示,但是,在用canvas绘制一次,就渲染不出来。最后去看了插件的github
于是我去试了一下这个方法
htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,})
.then(()=>{
htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,})
.then(()=>{
htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,
}).then((url)=>{
imgUrl.value = url;
})
})
})
经过多次调用,ios的图片出来了!!!!。
据说这个好像是因为ios的浏览器加载图片有延迟导致的。
如果还是不行可以试试这个方法,设置最后图片生成出来的base64大小。
这里ios还有一个问题,如果生成的dom图片里面引入字体包,也可能生成不出来,好像是因为会先加载项目里所有的字体包,然后再去生成图片,以至于最后生成出来的只有字体,没有图片。