问题: 小程序下 generateSharePoster "开始调" 后无 "resolved",
卡在 canvas 绘制或导出步骤。
修复 + 调试:
1. generateSharePoster 流程加详细日志:
- 进入
- 准备 createCanvasContext
- createCanvasContext 返回值
- qrcodeRenderUrl 当前值
- drawQrcodeAndExport 进入
- ctx.draw(false, cb) 准备
- ctx.draw callback 触发
2. 关键修复: ctx.draw(false, callback) 包裹导出
- 旧代码:画完 fill() 后直接调 _exportCanvas(canvas 还是空的)
- 新代码:画完后 ctx.draw(false, () => _exportCanvas())
在 callback 里导出真正渲染完的 canvas
3. _exportCanvas 简化:
- 不再走 createSelectorQuery(可能挂起)
- 直接用 canvasId 调 canvasToTempFilePath
- 加 5s 超时兜底,避免永远卡住
4. _prepareSharePoster 加 isH5Platform 短路:
- H5 下 canvas 模板不渲染,createCanvasContext 会失败
- 短路后不调用 generateSharePoster,避免无效报错
请在微信开发者工具里再次测试,看哪一行日志卡住
(预期: 进入 → createCanvasContext 返回 → qrcodeRenderUrl →
drawQrcodeAndExport → ctx.draw 准备 → ctx.draw callback → _exportCanvas → 成功)
,把卡住那一行的日志贴出来。
85 KiB
85 KiB