在进行uniapp跨平台开发时,遇到了一个问题:
需要将当前页面所有的视图转化为图片保存进系统相册、或者进行其他功能的实现。因为做web前端开发也不到一年时间,进行过多次摸索,尝试过很多方法,最终将此问题解决。
我们都知道convas,即画布有直接的官方api将当前的context转化为image,那我们为何不采用这个方式,将我们的视图页面渲染进这个convas中呢?在此思路的明确引导下,进行了尝试,最终如愿以偿。其实,再多想一下,总结一下,普通的view视图不就是面向我们前端开发人员进行视图的配置的吗?CSS样式按照我们的所看即所写的方式实现设计效果图,渲染引擎再将这些view绘制渲染到一个convas中吗?
那么我们如何将复杂的页面视图绘制进convas呢?
我们在页面中实现一个视图dom如下:
<view class="image-cs">
<canvas canvas-id="qrcodeCanvas"></canvas>
</view>
相应的css如下:主要作用为初始化画图的大小,为以后的JS方法实现提供便利。
.image-cs{
height: 514px;