Files
xinlong-shop-taro/.workbuddy/memory/2026-07-13.md
赵忠林 8489a023d9 feat(share): 完善首页分享功能,支持朋友圈与复制链接
- 纠正 tabBar 页可分享朋友圈的误解,tabBar 页只在朋友圈单页模式底部不显示但支持分享
- useShare 钩子新增 enableCopyUrl 参数,支持复制链接按钮绑定与解绑
- 首页配置启用 enableShareTimeline,调用 useShare 启用朋友圈和复制链接三按钮
- 补充复制链接功能,适配基础库 2.14.3+(Beta),需真机测试
- 朋友圈分享自动带 inviter 参数,统一裂变归因机制
- 更新文档及注释,明确朋友圈分享与复制链接支持及注意事项
2026-07-13 09:03:32 +08:00

19 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-07-13 工作日志
## 小程序分享 / 朋友圈能力全量接入
- 新增 `src/hooks/useShare.ts`:统一注册 `useShareAppMessage` + `useShareTimeline`,自动追加 `inviter=${user.id}` 裂变参数;导出 `isTimelineSinglePage()`scene===1154
- 新增 `src/components/SharePoster/index.tsx`Canvas 2D 生成「封面+标题+价格+小程序码」海报,返回临时图路径作 imageUrl。
- 新增 `src/api/share.ts``generateShareCode(page, inviterId)`,复用 `generateMiniProgramCode`scene=uid_${id}page 透传)。
- 扩展 `src/api/shop/shopInvite/index.ts``generateMiniProgramCode`URL 透传 `page` 参数(后端需读取转发)。
- 接入 10 个页面:商品/积分/拼团/秒杀/活动/赛事详情(带 canvas 海报);邀请下级/分销推广/升级VIP/分享赚佣金(仅 enableShare + useShare
- 类型检查:本次改动零错误,仅余 1 个历史既有错误TS2688 @tarojs/taro 类型解析,非本次引入)。
- 待办/注意:朋友圈分享必须真机测试;后端需支持按 page 生成指定落地页小程序码;单页模式降级(避免强制登录跳转)可调用 `isTimelineSinglePage()`
## 首页分享纠正 + 三按钮全亮(好友/朋友圈/复制链接)
- ❗纠正:之前误以为"tabBar 页不能分享朋友圈"是错的。核实微信官方 Page 文档 + 分享朋友圈专题文档tabBar 页**可以**分享朋友圈(只要定义 onShareAppMessage + onShareTimeline 即显示按钮)。"tabBar 不渲染"仅指朋友圈打开后的**单页模式**里底部 tabBar 不显示,不是不能发起分享。
- `src/hooks/useShare.ts` 扩展:新增 `enableCopyUrl?: boolean`(复制链接,用 `Taro.onCopyUrl`/`offCopyUrl` 在 useEffect 里进页绑定、离页解绑);`enableTimeline` 默认 true 且 tabBar 页也生效;纠正了旧注释。
- `src/pages/index/index.tsx`config 加 `enableShareAppMessage` + `enableShareTimeline``useShare({ title, path, enableTimeline:true, enableCopyUrl:true })`,首页右上角三个按钮全亮。
- 复制链接:基础库 2.14.3+ Beta官方说仅 Android实测 iOS 也支持);朋友圈/复制链接开发者工具可能看不到入口,需真机测试。
- 注意:首页分享朋友圈后是单页模式(无登录态/不能跳转/tabBar 不渲染),首页是交互型页面,单页体验受限,但作传播入口可用;如需更好体验可用 `isTimelineSinglePage()` 做降级。
- 类型检查:零错误(历史既有 1 个 TS2688 仍在)。