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
}
相关推荐
科威网络14 小时前
小程序开发性能优化:分包、预加载与启动时间
性能优化·微信小程序·小程序
互联网+人工智能观察21 小时前
微信小程序私有化定制、源码交付方案选型|SaaS / 模板二开 / 定制方案技术对比
微信小程序·小程序
爱勇宝2 天前
小红花成长更新了:孩子想要什么,也应该有机会自己说出来
微信小程序·产品·小程序·云开发
andrsted3 天前
企业培训时间难统一?练题簿让在线免费刷题与培训考核更好安排
学习·微信小程序·小程序·学习方法·刷题
拖孩3 天前
一个人 + AI 做的小程序,今天,正式回本了
前端·后端·微信小程序
李纲明3 天前
微信小程序 wx.uploadFile 上传失败:合法域名、临时路径与 HTTPS 证书排查
微信小程序·小程序·uploadfile·devdiy·上传失败
冬奇Lab3 天前
一天一个开源项目(第247篇):wxa-runner —— 让小程序在普通浏览器里用微信官方基础库跑起来,直接接 Playwright 做无头 E2E
微信小程序·开源
andrsted3 天前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
梅雅达编程笔记4 天前
Day 17 | uni-app 小程序:前端从零搭建
微信小程序·typescript·uni-app·vue3·pinia·前端开发·全栈
zhiboshequ5 天前
Ai音视频对话在微信小程序端的技术实现方案
人工智能·微信小程序·live-pusher·live-player·音视频对话