fix(utils): 优化小程序端复制文本功能体验

- 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题
- 避免微信小程序重复显示复制成功提示和误报复制失败
- 失败时仅在小程序端输出错误日志,非小程序端显示提示
- 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验
- 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求
This commit is contained in:
2026-06-30 18:10:29 +08:00
parent 93c66e1f14
commit dd183adaab
4 changed files with 63 additions and 19 deletions

View File

@@ -27,7 +27,10 @@
1. **只允许用户主动触发复制**:所有 `Taro.setClipboardData` 调用必须绑定在明确的用户点击事件上,禁止在无用户操作时自动读写剪切板。
2. **禁止复制后强制中断流程**:复制成功后不得强制跳转、强制关注、强制添加客服等,不能要求用户通过其他方式才能完成当前业务流程。
3. **避免重复 Toast 干扰体验**:微信小程序调用 `setClipboardData` 成功后系统会自带「内容已复制」提示。为避免重复提示,统一封装 `utils/common.ts` 中的 `copyText` 函数:小程序端不再额外显示自定义 `复制成功` Toast失败时仍显示错误提示。
3. **避免重复/失败 Toast 干扰体验**:微信小程序调用 `setClipboardData` 成功后系统会自带「内容已复制」提示。为避免重复提示及误报失败,统一封装 `utils/common.ts` 中的 `copyText` 函数:
- 小程序端weapp直接调用原生 `wx.setClipboardData`,不再额外显示自定义 `复制成功` / `复制失败` Toast
- 失败时仅通过 `console.error` 输出错误日志,便于排查
- 非小程序端保留原有成功/失败提示
### 项目内剪切板使用现状
@@ -35,5 +38,6 @@
- 均通过按钮点击触发(复制咨询模板、复制密钥、复制链接、复制兑换码等)
-`getClipboardData`(自动读取剪切板)调用
- 无复制后强制跳转或中断业务流程的行为
- 首页「立即开通」等外链按钮点击后复制链接;相对路径入口(如开发者中心)改为 `Taro.navigateTo` 跳转,不再复制
当前实现基本符合 5.15.4 规范。