- 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题 - 避免微信小程序重复显示复制成功提示和误报复制失败 - 失败时仅在小程序端输出错误日志,非小程序端显示提示 - 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验 - 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求
50 lines
3.3 KiB
Markdown
50 lines
3.3 KiB
Markdown
|
||
## 修复 WXSS 不兼容的 .\!visible CSS 选择器
|
||
|
||
- **问题**: Tailwind JIT 引擎把 JS 代码 `if (!visible)` 误识别为 `!visible` important 修饰符类名,生成 `.\!visible` CSS 选择器,WXSS 不支持反斜杠转义的 `!`
|
||
- **修复**: 创建 PostCSS 插件 `postcss-remove-tailwind-important.js` 移除所有 `.\!xxx` 选择器
|
||
- **配置**: 更新 `postcss.config.js` 引入该插件(使用函数引用方式,非字符串模块名)
|
||
- **验证**: 构建通过,`.\!visible` 从输出中移除,`.visible` 保留
|
||
- **注意**: 项目中实际无人使用 Tailwind 的 `!` 修饰符类名,安全移除。将来若需使用,需创建对应 WXSS 兼容类名
|
||
|
||
## 替换项目中不兼容 WXSS 的 space-x/y-* 类名
|
||
|
||
- **问题**: `space-y-*` / `space-x-*` 依赖 `:not()` + `~` + CSS 变量 + 嵌套 calc(),WXSS 不兼容
|
||
- **修复**:
|
||
- 源码中将所有 `space-y-*` 替换为 `flex flex-col gap-*`
|
||
- 注释中的 `space-y-*` 也一并替换,防止 Tailwind JIT 误扫描生成
|
||
- 扩展 PostCSS 插件为 `postcss-remove-wxss-incompatible.js`,一并移除 `space-*` 和 `divide-*` 规则
|
||
- 删除旧的 `postcss-remove-tailwind-important.js` 文件
|
||
- **涉及文件**: dealer/qrcode/index.tsx, dealer/invite-stats/index.tsx, components/QRScanModal.tsx
|
||
- **验证**: 构建通过,所有不兼容选择器已从输出中移除
|
||
|
||
## 审查并修复剪切板接口合规问题
|
||
|
||
- **问题**: 用户截图显示「复制成功」与系统「内容已复制」重复 Toast,担心违反 5.15.4 剪切板接口滥用规范
|
||
- **审查结果**:
|
||
- 所有复制操作均为用户点击触发,无 `getClipboardData` 自动读取
|
||
- 无复制后强制跳转或中断业务流程
|
||
- 当前实现基本合规,主要问题是重复 Toast 影响体验
|
||
- **修复**: 更新 `src/utils/common.ts` 中的 `copyText` 函数,小程序端不再显示自定义「复制成功」Toast,由系统自带提示替代
|
||
- **验证**: weapp 构建通过
|
||
|
||
## 修复首页「复制失败」Toast 问题
|
||
|
||
- **问题**: 微信审核反馈小程序打开首页提示「复制失败」,截图显示该 Toast 来自产品矩阵页面
|
||
- **分析**:
|
||
- 首页无生命周期自动复制,复制均由用户点击触发
|
||
- 「立即开通」按钮点击后通过 `copyText` 复制外链,`copyText` 的 `fail` 回调会弹「复制失败」Toast
|
||
- 部分机型/场景下 `Taro.setClipboardData` 可能误报失败,导致审核不通过
|
||
- **修复**:
|
||
- 更新 `src/utils/common.ts` 的 `copyText`:小程序端直接调用原生 `wx.setClipboardData`,失败时只 `console.error` 不弹 Toast
|
||
- 优化 `src/pages/index/index.tsx` 的 `openMaybeLink`:相对路径改为 `Taro.navigateTo` 跳转,仅外链复制
|
||
- 「了解模板/插件市场」按钮不再调用 `openMaybeLink('/market')`,仅保留提示 Toast
|
||
- **验证**: weapp 构建通过,dist 中不再包含「复制失败」字符串
|
||
|
||
## 修复 wx 全局变量 TypeScript 红色警告
|
||
|
||
- **问题**: `src/utils/common.ts` 中使用 `wx.setClipboardData` 时,TypeScript 报「Cannot find name 'wx'」红色警告
|
||
- **原因**: 项目没有声明微信小程序原生全局对象 `wx` 的类型
|
||
- **修复**: 在 `types/global.d.ts` 中添加 `declare const wx: any;` 全局类型声明
|
||
- **验证**: `tsc` 不再报 `common.ts` 相关错误,`npx taro build --type weapp` 构建成功
|