需求

用户在页面填写信息和签字后要把当前页面的信息截图生成图片保存。

技术实现难点

  1. 页面长度特别长,多屏才能显示完全,生成的图片的长度特别长。
  2. 页面内容复杂,内容中包含了大量文本、大量图片。
  3. 页面源码使用了大量自定义组件。

常见技术方案

1、使用官方推荐的扩展组件:wxml-to-canvas

  • 优点:经过大量项目实践,官方推荐,比较稳定。
  • 缺点:需要手动拼接wxml,wxss,只适用于内容简单、内容量少的图片生成,比如海报。不支持自定义组件。

2、服务器端生成图片

  • 优点:摆脱小程序束缚,节省小程序端开发工作量
  • 缺点:损耗服务器性能,服务器压力大,图片生成能力有限。

在这个需求中显然上面两种方案都不太理想,甚至无法使用。小程序没有提供截图功能更不要说长截图功能。基于小程序现有的能力是实现不了了,只能自己寻找其他解决方案。

实现原理

在web端有很多把页面转为图片的工具库,能不能利用这些工具库或者移植到小程序上呢?

微信小程序底层虽然也是遵循web标准的,可是它自行实现了一套开发语言标准,这使得移植很难达成。让人感到欣慰的是微信小程序提供了webview组件以承载web页面。有了这个组件就可以借助web页面做很多事情了。该方案的实

微信小程序超长页面生成截图的一种解决方案相关推荐

  1. 微信小程序开发-页面跳转的几种方式

    最近在做微信小程序,碰到页面跳转的问题,总结一下页面之间跳转的方式 一.wx.navigateTo(OBJECT) 这是最普遍的一种跳转方式,其官方解释为:"保留当前页面,跳转到应用内的某个 ...

  2. 【微信小程序】页面跳转的四种方式

    页面跳转 wx.navigateTo(OBJECT) 这是最普遍的一种跳转方式,其官方解释为:"保留当前页面,跳转到应用内的某个页面"类似于html中的 window.locati ...

  3. 小程序 超长页面截图保存web-view+html2canvas

    web-view文档建议参考----支付宝提供的文档,html2canvas官方文档(官网可以下载html2canvas.js 和 html2canvas.min.js).由于篇幅受限,这里就贴了一下 ...

  4. 微信小程序webview页面使用painter生成海报

    微信小程序webview页面使用painter生成海报 因为要在webview下生成海报,需要使用cover-view,根据接口返回数据动态更新海报内容,微信小程序生成海报组件有wxa-plugin- ...

  5. 微信小程序开发系列 (四) :微信小程序的页面跳转路由设计

    笔者由于工作需要,曾经参加过一个微信小程序同 SAP 系统集成的项目,因此从零开始学习了微信小程序的开发知识.这里通过系列文章把自己所学分享出来,希望对相关学习者有所帮助. 本教程前面三篇文章: 微信 ...

  6. 微信小程序之页面打开数量限制

    微信小程序之页面打开数量限制 无论是在小程序还是APP中,打开一个页面其实就是创建了一个新的View对象,一层层叠加的.当点击页面的回退按钮就是把当前页面关闭. 这个过程中会涉及到一个问题,就是打开页 ...

  7. 微信小程序业务-字符串生成二维码(weapp-qrcode)

    微信小程序业务-字符串生成二维码(weapp-qrcode) 前言 邂逅weapp-qrcode 基本使用 详细参数 小程序组件中使用 image属性详解 想使用网络图片? 参考地址 前言 在小程序项 ...

  8. 微信小程序:页面传递中文出现乱码

    微信小程序:页面传递中文 decodeURIComponent() 参考 微信小程序页面中文传参Option获取参数乱码问题

  9. 微信小程序 某个页面直接返回首页(微信小程序回退到首页)

    微信小程序 某个页面直接返回首页(微信小程序回退到首页) 打开小程序后,到三级页面后点击左上角的返回按钮,能够直接返回到首页 正常 A -> B -> C 都是通过 wx.navigate ...

最新文章

  1. 一个java高级工程师的进阶之路【转】
  2. Corn Fields(POJ 3254状压dp)
  3. 北理工计算机原理与应用实验,北理工计算机原理与应用实验三教程.docx
  4. 逻辑漏洞——会话管理问题
  5. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上
  6. java连接mysql数据库连接池_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...
  7. 使用select一个表更新另一个表(批量更新)
  8. java用循环语法在窗体中显示文字,如果子窗体在窗体视图中,则访问2003循环当前页面不起作用...
  9. math.sqrt_Math.SQRT1_2属性与JavaScript中的示例
  10. jQuery的实现原理和核心
  11. word排版插件_8款堪称神器的Office插件,让你工作效率直线飙升!
  12. Js之History对象
  13. 深度学习笔记(一):logistic分类
  14. Unity3D常用知识点总结
  15. 宅男壁纸大全微信小程序源码-带动态壁纸支持多种流量主
  16. 3招教你花式导入Excel数据到JMP
  17. SREng扫描报告分析
  18. 芯片技术---芯片到底是什么?
  19. 计算机无法更改开机密码,不能修改win7电脑开机密码是怎么回事
  20. GPS卫星定位—python实现

热门文章

  1. server取出多个最小值 sql_sql-server
  2. Android,提供视频开发测试地址(视频下载和视频播放所用)
  3. 推荐一款远程控制软件Toesk。支持文件传输、高清画质、隐私屏、键盘鼠标映射等功能。
  4. C# DataGridView行列转换
  5. 百度:自动驾驶出租车服务在北京全面开放!人工智能牛
  6. CreateCompatibleDC 解释
  7. 2019计算机小高考成绩,小高考没过怎么办 2021小高考难度如何
  8. MATLAB可以使用但是使用help函数报错问题的解决
  9. 如何解除计算机远程控制,如何远程控制另一台电脑?
  10. python pandas dropna 删除空值/缺失值(DataFrame)