From 669d34918df00f9dda859d629c78a404ed753f13 Mon Sep 17 00:00:00 2001 From: lanterngamescn Date: Sat, 27 Jun 2026 12:36:53 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=88=86=E4=BA=AB=20spec=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E2=80=94=E2=80=94=E4=B8=89=E7=AB=AF=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E4=B8=80=E5=BE=8B=E4=B8=8D=E5=90=AB=20url=EF=BC=8CsystemLink?= =?UTF-8?q?=20=E9=80=80=E5=BD=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 微信/抖音 第二三层均不带 webpageUrl;webpageUrl 仅作 type4 本地视频路径; 系统分享统一 PLAIN_TEXT(title+description)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../specs/2026-06-27-分享重构-design.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/superpowers/specs/2026-06-27-分享重构-design.md b/docs/superpowers/specs/2026-06-27-分享重构-design.md index 7b1cfd5..735d8d9 100644 --- a/docs/superpowers/specs/2026-06-27-分享重构-design.md +++ b/docs/superpowers/specs/2026-06-27-分享重构-design.md @@ -65,25 +65,28 @@ H5 → friendsSharetypeUrlToptitleDescript(SharetypeBean) ## 5. 内容组装(逐渠道对齐原工程) -文本拼接函数 `buildShareText(bean, platform)`: +文本拼接函数 `buildShareText(bean, platform)` —— **三端文本一律不含 `webpageUrl`**: -| 渠道 | 文本/网页(type1,3) 剪贴板格式 | 备注 | +| 渠道 | 文本(type1,3) 格式 | 备注 | |---|---|---| -| 微信 | `title\ndescription\nwebpageUrl` | 去 SDK 后新增剪贴板文本;无缩略图概念 | -| QQ | `title\n\ndescription` | **严格对齐原工程:双换行、不含 url** | -| 抖音 | `title\ndescription\nwebpageUrl` | **对齐原工程:单换行、含 url** | +| 微信 | `title\ndescription` | 单换行、**不含 url**(第二/三层均不带);无缩略图概念 | +| QQ | `title\n\ndescription` | 双换行、不含 url(对齐原工程) | +| 抖音 | `title\ndescription` | 单换行、**不含 url**(第二/三层均不带) | -- 空字段跳过对应行,避免出现多余空行。 -- `type "3"`(图片链接)按文本/链接处理(同原 Android 退化为链接文本)。 +- 空字段跳过对应行,避免多余空行。三端差异仅在换行数(QQ 双、微信/抖音 单)。 +- **`webpageUrl` 不再出现在任何文本/链接分享路径**;仅作 type4 的本地视频文件路径使用。 +- `type "3"`(图片链接)按纯文本(`title`+`description`)处理,不带 url。 类型处理: | type | 内容 | 剪贴板 | 系统分享兜底 | |---|---|---|---| -| 1 网页/文本 | `buildShareText` | PLAIN_TEXT | `systemLink`/`systemText` | +| 1 网页/文本 | `buildShareText`(无 url) | PLAIN_TEXT | `systemText`(PLAIN_TEXT, 无 url) | | 2 Canvas 截图 | `captureCanvas(sharetype)` → `saveDataUrlToFile` 沙箱 | PIXELMAP | `systemImage` | -| 3 图片链接 | 同 type1 文本/链接 | PLAIN_TEXT | `systemLink` | -| 4 视频(抖音) | 本地视频 `webpageUrl` | 文件 URI | `systemVideo`;远程降级为 `systemLink` | +| 3 图片链接 | 同 type1(纯文本, 无 url) | PLAIN_TEXT | `systemText` | +| 4 视频(抖音) | 本地视频 `webpageUrl` | 文件 URI | `systemVideo`;远程视频降级为 `systemText`(无 url) | + +> 系统分享(第三层)统一用 `PLAIN_TEXT(title+description)`,**不再使用 `systemLink`/HYPERLINK**(即不下发 url)。`systemLink` 退役。 ## 6. `sharesuccess` 回传(仅微信,乐观) @@ -98,7 +101,7 @@ H5 → friendsSharetypeUrlToptitleDescript(SharetypeBean) - 保留:`FriendsShare` 注册、`PHOTO_UPLOAD`(`LocalUploadServer` 截图上传)链路 → 改为走微信指引窗(图片)。 - 新增:`sharefriend` 分流、`buildShareText` 逐渠道、`writeClipboard`(文本/PIXELMAP/URI)、`showGuide` 经事件投给 UI、`openAppByScheme`(`canOpenLink`+`openLink`)。 - 预留空分支:`qqSdkShare()` / `douyinSdkShare()`(注释 TODO,注册到位后接 SDK)。 -- 复用:现有 `systemShare` 方法(`systemText/systemLink/systemImage/systemVideo`)、`saveDataUrlToFile`、`captureCanvas`。 +- 复用:现有 `systemShare` 方法(`systemText/systemImage/systemVideo`,**`systemLink` 退役不再使用**)、`saveDataUrlToFile`、`captureCanvas`。 - 移除:对 `WeChatApi.sendShare` / `WXMediaMessage` / `WXWebpageObject` / `WXImageObject` / `SendMessageToWXReq` 的全部分享调用。 ### 7.2 新增 `entry/.../components/ShareGuideDialog.ets`