- 小程序端直接调用原生 wx.setClipboardData,避免 Taro Promise 封装问题 - 避免微信小程序重复显示复制成功提示和误报复制失败 - 失败时仅在小程序端输出错误日志,非小程序端显示提示 - 修改首页外链跳转逻辑,支持相对路径跳转,小程序内外链复制提示提升用户体验 - 更新项目内剪切板使用规范文档,说明复制行为调整及符合相应规范要求
3.3 KiB
3.3 KiB
修复 WXSS 不兼容的 .!visible CSS 选择器
- 问题: Tailwind JIT 引擎把 JS 代码
if (!visible)误识别为!visibleimportant 修饰符类名,生成.\!visibleCSS 选择器,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构建成功