news 2026/10/21 1:58:17

Folia PWA 安装指南:3 分钟把歌词动画播放器装进手机主屏幕

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Folia PWA 安装指南:3 分钟把歌词动画播放器装进手机主屏幕

Folia PWA 安装指南:3 分钟把歌词动画播放器装进手机主屏幕

【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major

Folia 是一款专注歌词动画效果的本地音乐 / Navidrome / 多平台在线音乐播放器,没有官方手机 App,但 Web 版原生内置 PWA(Progressive Web App,渐进式 Web 应用)能力。按这篇指南操作,约 3 分钟就能让 Folia 以独立图标的形式出现在手机主屏幕上:部署一个手机够得到的 Web 地址,用 Chrome 或 Safari 把它「添加到主屏幕」,之后点开图标就是全屏播放界面,通勤路上在线搜歌、切主题看歌词动画、弱网环境离线秒开都能覆盖。

能做什么,边界在哪里

装好的 Folia PWA 覆盖这些日常场景:

  • 在线搜索网易云、酷狗、QQ 音乐的歌,登录态存在手机浏览器里,不用每次重新登录
  • 竖屏看全屏歌词动画,cappella、pendolo 等主题随窗口尺寸响应式重排
  • 接上 Navidrome 后听 NAS 上的私有曲库,封面与歌词照常驱动
  • 核心资源由 Service Worker(浏览器的离线缓存机制)预缓存,弱网打开速度明显快于普通网页

两条边界要说清:手机上不能导入本地音乐文件,目录导入依赖桌面浏览器的 File System Access API,手机浏览器没有这个能力,手机想听「自己的歌」走 Navidrome 路线;另外模组系统是桌面版专属,网页版和 PWA 里没有模组入口。

📋 动手前确认这五件事

前置条件如何确认已满足
一台能上网的手机,安卓用 Chrome、iPhone 用 Safari打开浏览器能正常访问任意网站
一个手机能访问的 Folia Web 地址(托管平台域名,或 NAS 的局域网 IP + 端口)手机浏览器打开能看到 Folia 启动画面
地址是 HTTPS(托管平台自带;自部署需反向代理 + 可信证书)地址栏有锁形标识,不是http://开头
Docker 路线:Docker Engine 24+ 与 Compose v2终端执行docker version能看到输出
手机与 Folia 在同一网络(局域网部署时)手机浏览器能打开该地址

PWA 的安装入口和离线运行都依赖 HTTPS 安全上下文,这是后面所有步骤的前提。

🚦 部署路线怎么选

  • 一键托管(Vercel / Cloudflare):适合没有服务器的人。平台自带 HTTPS 和域名,导入仓库建项目即可,阻力最小。
  • Docker 全栈:适合有 NAS 或自建服务器的用户,一套 compose 拉起前端网关、各音源接口和 Sync Server,但要自己配反向代理拿证书。

推荐新手走一键托管:HTTPS 这件最难的事平台免费解决。

🔧 主流程:从部署到主屏幕图标

第一步:把 Web 版部署到手机能打开的地址

托管路线:到 docs/technical.md 的「一键部署到 Vercel」一节按入口创建项目,然后在项目的环境变量里至少补上:

VITE_NETEASE_API_BASE=<你的网易云 API 实例地址> VITE_AI_PROVIDER=google GEMINI_API_KEY=<你的密钥>

想开 QQ 音乐入口就再加VITE_QQ_API_BASE=/api/qq和QQ_SESSION_SECRET(不加VITE_前缀)。完成标志:重新部署后,手机浏览器打开分配的域名,能看到 Folia 启动动画和曲库首页。

Docker 路线:新建一个空目录,把仓库deploy/docker/下的compose.yaml和.env.example放进去(需要拉取源码时执行git clone https://gitcode.com/GitHub_Trending/fo/folia-major,从deploy/docker/目录取这两个文件),把.env.example改名为.env:

openssl rand -hex 32

把输出填入.env的SYNC_TOKEN(必填,至少八位),然后:

docker compose up -d --wait docker compose ps

完成标志:docker compose ps里所有容器都是 running 状态。在服务器上顺手验一下curl http://127.0.0.1:18080/healthz能返回健康结果。

注意:Docker 默认入口http://NAS-IP:18080是普通 HTTP,不属于浏览器安全上下文,手机上会找不到安装入口。NAS 用户请在反向代理上挂可信证书,把域名指到127.0.0.1:18080,细节见 deploy/docker/README.md 的「HTTPS 与浏览器安全上下文」一节。

第二步:安卓安装到主屏幕

用 Chrome 打开 Folia 地址:

  1. 点右上角 ⋮ 菜单
  2. 选「添加到主屏幕」
  3. 确认名称显示为 Folia,点「添加」

完成标志:返回桌面出现 Folia 图标,点开以全屏独立窗口启动、没有地址栏——这是 manifest 里standalone显示模式生效的表现,也是判断装成功的直接证据。

第三步:iPhone 安装到主屏幕

用 Safari 打开 Folia 地址。仓库 index.html 已配好apple-mobile-web-app-capable等元标签,步骤:

  1. 点底部 ⬆️ 分享按钮
  2. 上滑找到「添加到主屏幕」
  3. 确认名称与图标,点「添加」

完成标志与安卓相同:桌面出现图标,点开为全屏窗口。连接网易云后,手机上看到的曲库首页长这样:

✅ 结果确认:全屏播放与离线启动

装上之后播放任意带歌词的歌,全屏歌词动画就是这台「手机 App」的核心证据。「cappella」主题把歌词排成左右交替的对话气泡,像一场合唱推进,竖屏窄屏下依然好读:

「pendolo」主题是机械齿轮与星空轨道,副歌高亮逐字亮起。动画帧率正常、无掉帧,说明 Service Worker 缓存与渲染都在正常工作:

另外两个正常信号:完全断网后重新打开图标仍能进入应用(核心资源命中预缓存);服务器发新版后,完全关闭图标再打开才会加载新版本——Service Worker 用的是autoUpdate策略,更新在下一次冷启动才生效。

🎛️ 进阶:Navidrome 预置账号,手机免登录听私有曲库

想让 NAS 上的歌出现在 PWA 里,三步完成:

  1. 在 NAS 上用 Docker 部署 Navidrome,挂载音乐目录
  2. 在 Folia 的.env(Docker 路线)或托管平台环境变量里填入NAVIDROME_URL、NAVIDROME_USERNAME、NAVIDROME_PASSWORD三项
  3. 手机新打开一次浏览器,Folia 会自动登录并启用 Navidrome,无需手动填账号

注意:NAVIDROME_URL必须是各设备都能访问到的地址,不能写 Docker 内部主机名;Folia 走 HTTPS 时它也要是 HTTPS,否则浏览器会拦截混合内容。三项只填一两项时预置不生效,backend 日志会报警告。

配置生效后,PWA 首页就是这样的私有曲库视图:

⚠️ 排障速查

装不上或用起来有怪象时,按出现概率从高到低对照:

现象常见原因对应处理
浏览器里找不到「添加到主屏幕」地址是 HTTP,非安全上下文;或用了非 Chrome / Safari 的浏览器确认地址栏是 HTTPS;换 Chrome(安卓)或 Safari(iOS);重新加载页面再试
服务端更新了,手机还是旧版本autoUpdate策略下更新只在下次冷启动生效完全关闭应用后重新打开;长期不更新则清除站点数据,卸载图标重新添加
HTTPS 下封面不缓存、选不了音频输出设备证书链不完整(自签名证书不算),OPFS 与设备枚举被降级查看证书详情确认链完整,换可信证书后重启 PWA
填了 Navidrome 三项变量,手机端没自动登录NAVIDROME_URL手机访问不到、被混合内容拦截;或该浏览器曾手动关过 Navidrome 开关用同一网络的手机直接打开NAVIDROME_URL验证连通性;在设置里手动打开 Navidrome 开关

部署加安装一共 3 分钟,手机主屏幕上就多了一台全屏歌词动画播放器:在线搜索、Navidrome 曲库、离线秒开都在这个图标里。部署细节与音源配置随时回看 deploy/docker/README.md 和 docs/technical.md。

【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 1:58:15

AI芯片选型全指南:从场景到参数,120+芯片调查的实战心得

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 1:52:47

SpEL底层原理与安全边界:从AST求值到表达式注入避坑

简介&#xff1a;一份面向Spring开发者的SpEL表达式详解资源&#xff0c;系统梳理了Spring Expression Language的核心语法与典型应用场景&#xff0c;涵盖属性访问、算术与逻辑运算、集合筛选、类型转换、上下文变量及AOP切点中的动态逻辑编写&#xff0c;适合正在学习Spring框…

作者头像 李华
网站建设 2026/10/21 1:52:35

芯谷科技—D7368GS 音频功率放大器

一、产品概述D7368GS 是绍兴芯谷科技&#xff08;Silicore&#xff09;专为便携式立体声收录机设计的音频功率放大器集成电路。采用经典的 SIP9 单列直插封装&#xff0c;仅需三个外接电容即可实现完整音频放大功能&#xff0c;是便携式音频设备中实现高性价比音频输出的理想选…

作者头像 李华