之前微信小程序点击"立即分享"会触发 onShareAppMessage, 默认 imageUrl 用 diyData.shareImageUrl(为空时微信截全页)。 问题是分享图片是整张页面,而不是推荐码组件本身。 新增 generateSharePoster():用 uni.canvas 绘制一张仅含推荐码组件内容 的 375x480 海报: - 白底 + 顶部标题 - 米黄背景区 + 推荐码大字 - 二维码(如有 qrcodeRenderUrl) - 底部提示文字 并修改 onShareAppMessage: - 小程序环境(!isH5Platform):返回 Promise,等待 canvas 生成完成后 用临时文件路径作 imageUrl - 失败回退到 diyData.shareImageUrl - H5 环境:保持原逻辑(不走 canvas) 新增辅助方法: - _exportCanvas():canvas 转临时文件路径(支持 type=2d 和旧版 API) - _roundRect():绘制圆角矩形路径(canvas 2d 不直接支持 roundRect 时的兜底) - _downloadImage():网络图片下载到临时路径(uni.downloadFile Promise 化) 模板: - 在 root view 内加一个隐藏 canvas (canvas-id="sharePosterCanvas"), 仅小程序环境渲染,固定在视口外 left:-9999px top:-9999px
81 KiB
81 KiB