iOS 上 PWA 无法添加到主屏幕怎么办?

UI世杰 阅读 2

我在开发一个 PWA 应用,在 Android 上一切正常,但 iOS 用户说没法添加到主屏幕。我明明加了 manifest 和相关 meta 标签,是不是哪里漏了?

试过在 Safari 里点分享 → “添加到主屏幕”,但有时候按钮灰着不能点,或者点了没反应。下面是我的关键 HTML 配置:

<link rel="manifest" href="/manifest.json" rel="external nofollow" >
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="MyApp">
<link rel="apple-touch-icon" href="/icons/apple-touch-icon-192x192.png" rel="external nofollow" >

manifest.json 也配了 start_url、display: standalone 这些,但 iOS 16 上还是不行,到底还缺啥?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
シ凌薇
シ凌薇 Lv1
哈,这坑我踩过,iOS的PWA支持确实一堆坑。先说几个关键点:

1. 首先检查你的manifest.json里的 scope 属性,必须和start_url匹配。我上次就是scope写成 /app/ 但start_url是 /,结果iOS直接不给加主屏幕。血泪教训啊!

2. iOS对图标尺寸特别矫情,必须提供 apple-touch-icon 而且尺寸必须是规范的。建议这样配:
<link rel="apple-touch-icon" sizes="180x180" href="icon-180.png">
<link rel="apple-touch-icon" sizes="152x152" href="icon-152.png">
<link rel="apple-touch-icon" sizes="120x120" href="icon-120.png">
<link rel="apple-touch-icon" sizes="76x76" href="icon-76.png">


3. 还有个很坑的点:iOS要求PWA必须是通过HTTPS访问的,就算是localhost开发环境也不行。我之前测试时发现Safari对非HTTPS的网站直接禁用添加到主屏幕功能。

4. 最后检查下是不是用了什么特殊字符在manifest里,iOS的解析器特别敏感。我遇到过因为manifest里有中文逗号直接导致解析失败的。

补充一句:iOS16开始对PWA支持更严格了,建议用iPhone真机测试,模拟器有时候会漏掉这些问题。
点赞
2026-03-07 15:02