问题
- 今日同事开发海报生成页面的过程中,在 ios 13.4.1 系统 中,微信浏览器使用 html2canvas 无任何反馈,其他系统版本浏览器页面都无问题。
后果
- 海报无法生成,导致用户无法分享海报。
原因
- Promise documentClone.fonts.ready not resolve in file document-cloner.ts.
- github 上有问题描述: https://github.com/niklasvh/html2canvas/issues/2205
解决方案
- 对 html2canvas 由 1.0.0-rc. 5 回退版本到 1.0.0-rc. 3 或者 1.0.0-rc. 4即可。
npm install html2canvas@1.0.0-rc.3
npm install html2canvas@1.0.0-rc.4
两者任选一个,这里有个坑,如果项目有yarn.lock文件,或者package.lock.json文件,请删除掉该文件,再把 node_modules 删除,重新安装依赖,否则会出现回退版本不成功的问题。
最后请使用命令查看依赖是否回退成功。我在这里遇到问题是执行回退版本命令之后,用 npm ls html2canvas 命令查看一直是 rc5 的版本,后来依照上面的方法得以解决。
npm ls html2canvas
- 这个命令是查看本地包版本,比较费时,请等一等,如果显示的是 html2canvas@1.0.0-rc.3 或者 html2canvas@1.0.0-rc.4 就说明回退成功。