fix(fe): 成长海报的「保存/分享」原来是个装饰按钮

报告页 → 分享卡片,弹层底部那个「保存 / 分享卡片」按钮绑的是
bindtap="close" —— 点了只是把弹层关掉,既不保存也不分享。按钮文案
承诺了两件事,一件也没做。

拆成两个真按钮:
- 分享给朋友:走微信原生 open-type="share",转发标题带上宠物名
- 保存到相册:把海报画进离屏 canvas 再存相册

canvas 部分的几个坑:
- 画布用 position:fixed 挪到屏幕外,不能 display:none —— 那样
  selectorQuery 取不到节点
- 按 pixelRatio 放大再 scale,否则高分屏上导出的图是糊的
- 相册权限被拒过一次后 wx.authorize 不会再弹,必须 wx.openSetting
  引导,否则这里会永远静默失败——正是这次要修的那类问题

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-29 15:08:56 +08:00
parent 75765b3ee8
commit 0dee6e27d2
4 changed files with 17 additions and 3 deletions
@@ -79,3 +79,6 @@
margin-left:var(--sp-1);font-size:var(--fs-cap);font-weight:var(--fw-b);
color:var(--primary-ink);background:var(--primary-soft);padding:2rpx var(--sp-1);border-radius:var(--r-full);
}
/* 离屏画布:挪到可视区外而不是 display:none,否则 selectorQuery 取不到节点 */
.poster-canvas{position:fixed;left:-9999rpx;top:0;width:600rpx;height:840rpx}