Skyline 渲染问题记录以及总结

Skyline 渲染模式下 scroll-view 高度塌缩

项目在 app.json 里全局启用了 Skyline 渲染"renderer": "skyline")。Skyline 和传统 WebView 渲染有个关键差异:

Skyline 下 scroll-view 不会自动按内容撑开高度,不显式设置高度就会塌缩为 0。

正好踩中了这个坑:

  • 外层页面 scroll-view 设了 height:100vh → 正常显示
  • 品牌区的 .brand-scroll 设了 height: 60vh → 正常显示
  • 历史标签的 .history-tags-wrapper 没设高度 → 高度变 0,里面的标签和"暂无记录"全被压没了

不是数据问题,是整个容器高度为 0。

Skyline 渲染模式 超一行无省略号

  • 根因:Skyline 渲染下 text-overflow: ellipsis 仅 text 组件支持,view 上无效
  • 修复:在使用了 text-overflow: ellipsi的 view 改为 text,wxss 加 display:block
  • 项目教训:Skyline 下文本省略/截断必须用 text 组件 + display:block

Skyline 渲染模式下 (豆腐块/错字)

  • 现象:view→text 改造后,个别文字 出现 □ 豆腐块和错位字形,字符串里混入了控制字符/零宽字符/私有区字符这类"脏字符"(WebView 静默忽略脏字符,Skyline text 会画出来)
  • 修复:新增 sanitizeDesc()(过滤控制字符/零宽字符/私有区/替换符 + 多余空白 + JS 侧截断 40 字兜底)
js 复制代码
const sanitizeDesc = (str, maxLen = 40) => {
  if (!str) return ''
  const cleaned = String(str)
    .replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F-\u009F]/g, '') // 控制字符
    .replace(/[\u200B-\u200D\uFEFF\u2028\u2029]/g, '')                     // 零宽字符/分隔符
    .replace(/[\uE000-\uF8FF]/g, '')                                       // 私有区字符(字体无字形→豆腐块)
    .replace(/\uFFFD/g, '')                                                // 替换符
    .replace(/\s+/g, ' ')
    .trim()
  if (maxLen && cleaned.length > maxLen) {
    return cleaned.slice(0, maxLen) + '...'
  }
  return cleaned
}
相关推荐
小程序开发X4 小时前
2026 深圳 APP 开发甄选:技术架构搭建、全流程落地、综合选型解读
微信小程序·小程序·app开发
EatFan6 小时前
一个二维码背后的系统设计:批次生成、绑定、扫码与数据统计怎么做?
java·后端·微信小程序·二维码·qrcode
微笑的曙光1 天前
第一期 · 本地优先 MVP:不写一个后端,如何做出完整体验
微信小程序
EatFan1 天前
Java接入微信支付保姆式教程(三):SpringBoot 接入微信支付并完成统一下单
微信小程序·微信支付·springboot
QQ_21696290961 天前
基于SpringBoot+Vue的小生活平台的设计与实现
java·数据库·vue.js·spring boot·spring·微信小程序·生活
飞梦工作室1 天前
H5页面能否直接播放视频号直播?实战方案与踩坑总结
微信小程序·小程序
StevenLdh2 天前
情绪小恐龙:一个微信小程序从架构设计到部署上线的全记录
微信小程序·小程序·notepad++
Bs_MoneyMagnet2 天前
基于springboot+vue的旅游行程分享与推荐小程序的设计与实现 源码+文档
java·vue.js·spring boot·后端·微信小程序·毕业设计·计算机毕业设计
西木风落2 天前
业余发展——零后端微信小程序口算练习实战
微信小程序·vibe coding·口算小达人