← 返回工具箱

PWA / 应用身份

Web App Manifest 编辑与校验

从零生成或导入现有 manifest.webmanifest,按公开 URL 解析相对路径,检查 start_url、scope、稳定 id、图标用途和快捷入口,再导出可发布文件。

Manifest 描述应用名称、身份和展示偏好,但单独放一个 Manifest 不等于网站一定可以安装。浏览器还会检查 HTTPS、页面关联、图标、Service Worker 或自身当前安装条件。

应用身份

启动与外观

PUBLISH CHECKLIST

发布后不要只看 JSON

检查真实响应类型公开 URL 应返回 200 和 application/manifest+json 或兼容 JSON 类型,页面 head 中的 rel=manifest 要指向同一文件。

保持 id 长期稳定修改名称、图标或 start_url 时不要顺手换 id。浏览器用它识别是不是同一个已安装应用,身份变化可能产生第二个安装项。

在目标浏览器真安装一次192×192、512×512 和 maskable 是常见兼容建议,并非 W3C 语法强制项。最终安装资格与裁切效果仍要在 Chrome、Edge 或目标设备确认。

字段处理依据:W3C Web App Manifest

RELATED TOOLS

查看全部工具 →

USE & REVIEW

Web App Manifest 生成、导入与校验常见问题

查看全部工具指南 →

有 manifest.webmanifest 就一定能安装成 PWA 吗?

不一定。Manifest 只描述应用身份、名称、图标和展示偏好。浏览器还会检查 HTTPS、页面中的 rel=manifest、图标是否可加载,以及当前浏览器版本自己的安装条件;有些平台仍要求 Service Worker。发布后必须在目标浏览器的开发者工具和真实设备上试装。

id、start_url 和 scope 分别做什么?

id 是应用的长期身份,用于判断以后看到的是同一个已安装应用;start_url 是用户从启动器打开时的首选页面;scope 规定哪些导航仍属于应用窗口。start_url 必须在 scope 内,id 应与它同源,而且 id 不应随着首页改版或 Manifest 搬家随意变化。

192×192、512×512 和 maskable 是 W3C 强制要求吗?

不是 Manifest JSON 的通用语法必填项,但它们是 Chromium 和常见安装环境的重要兼容建议。192 与 512 提供常用分辨率,maskable 表示图标预留安全区,系统可以裁成圆形、圆角方形等形状。缺少它们时 Manifest 仍可能被解析,安装入口或图标效果却可能不理想。

theme_color 和 background_color 有什么区别?

theme_color 是应用上下文的默认主题色,浏览器可用在标题栏、状态栏等界面;页面中的 meta theme-color 可以在作用域内覆盖它。background_color 主要用于应用样式尚未加载时的启动背景,不能替代网页 CSS 的正式背景色。

为什么工具要求填写 Manifest 的公开 URL?

start_url、scope、id、icons 和 shortcuts 都允许相对地址,它们要以 Manifest 文件 URL 为基准解析。没有这个基准只能判断字符串长得像不像路径,无法确认同源和作用域。这个 URL 只用于当前浏览器计算,不会写进 Manifest 本身,Head 引用会使用它。

Manifest 应该返回什么 Content-Type?

推荐 application/manifest+json,并使用 UTF-8。application/json 在部分环境也能工作,但发布后应检查真实响应,不要让服务器返回 text/html 或把 404 页面伪装成 200。页面 head 的 link rel=manifest 必须指向这个可公开访问的最终 URL。