iOS 上 PWA 无法添加到主屏幕怎么办?
我在开发一个 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 上还是不行,到底还缺啥?
1. 首先检查你的manifest.json里的
scope属性,必须和start_url匹配。我上次就是scope写成/app/但start_url是/,结果iOS直接不给加主屏幕。血泪教训啊!2. iOS对图标尺寸特别矫情,必须提供
apple-touch-icon而且尺寸必须是规范的。建议这样配:3. 还有个很坑的点:iOS要求PWA必须是通过HTTPS访问的,就算是localhost开发环境也不行。我之前测试时发现Safari对非HTTPS的网站直接禁用添加到主屏幕功能。
4. 最后检查下是不是用了什么特殊字符在manifest里,iOS的解析器特别敏感。我遇到过因为manifest里有中文逗号直接导致解析失败的。
补充一句:iOS16开始对PWA支持更严格了,建议用iPhone真机测试,模拟器有时候会漏掉这些问题。