在ios 13.4系统微信浏览器中, npm html2canvas包有问题
html2canvas(shareContent as HTMLElement, opts).then(canvas => {
// 无反馈
}).catch(_ => {
// 无反馈
})
在ios 非13.4系统微信浏览器中
html2canvas(shareContent as HTMLElement, opts).then(canvas => {
// 有反馈
}).catch(_ => {
// 有反馈
})
因为有部分用户更新了ios 13.4, 我们定位到是这个问题。
希望ios 13.4微信浏览器中html2canvas正常运行
我也莫名其妙,还好来百度了一番,html2canvas.js回滚到rc.4确实可以解决这个问题: https://github.com/niklasvh/html2canvas/releases/tag/v1.0.0-rc.4
解决方法,改源代码
试试
Promise documentClone.fonts.ready not resolve in file document-cloner.ts
如果页面中存在微信开放标签,会导致html2canvas无法回调。可以试试在调用前,隐藏掉开放标签。
我们就遇到了这个问题,开始怀疑是包版本的问题,换了几个版本,依然有问题。就尝试干掉页面所有其他dom,只保留最简单的部分,发现html2canvas可以回调,说明,包是没问题的,肯定是页面其他组件影响了。然后在最简单版本的基础上,一步一步把其他dom加回来,通过二分法,隐藏一半dom,展示一半dom,逐步定位,最终发现公众号的开放标签( 我这里用了 wx-open-subscribe )(https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html)会影响html2canvas导致生成图片无法回调。
虽然生产图片的dom中并没有这个开放标签,但是html2canvas依然被影响,无法回调。
于是在调用html2canvas前,通过控制v-if,干掉wx-open-subscribe这个订阅标签,html2canvas就能回调。
这,的确很不可思议!但事实就是如此。
版本回退到.4版本,看似回退到了,其实还是不行,一定要在package.json中把1.0.0-rc.4前的^ 删掉;别问为什么别的插件都有^ ,因为我也不知道;删掉就可以解决这个bug了
我这边用的是1.0.0-rc.3的版本也出现了同样的问题,safari浏览器是可以正常使用的,,,
回退到rc.4版本后可以了。一开始不行,先把rc.5版本卸了,再装的时候指定rc.4版本就好了
https://github.com/niklasvh/html2canvas/issues/2191
我切换到rc.4就好了
这个问题大家又进展么?? iphone 6s iphone SE 的 微信 中就不行, 自带的 safari 却可以
回退版本到 发现 苹果11的还是不行
"html2canvas": "^1.0.0-rc.4",
后来做了这个操作解决了
(window.html2canvas || html2canvas)(this.$refs.imageToFile, {}).then()
感谢下面链接的大佬
https://www.cnblogs.com/haqiao/p/13236858.html
大哥们呀,啥时候才能解决呀,这问题差点给 我弄死了。都怀疑人生了