You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级iOS 11.3后Web App无法按apple-mobile-web-app-capable实现全屏咨询

解决iOS 11.3+ Web App添加到主屏幕后显示导航栏的问题

我之前也踩过这个一模一样的坑!iOS 11.3确实对Web App的独立(standalone)模式触发规则做了收紧,之前随便加个apple-mobile-web-app-capable就能生效,现在得满足更严格的条件才行。下面是亲测有效的解决方案:

核心原因

iOS 11.3开始,苹果要求Web App必须同时满足正确的meta标签配置+有效启动图标,才会触发无导航栏的独立模式;如果缺少其中任何一项,系统就会默认用带导航栏的浏览器模式打开。

正确的Meta标签配置

把这些代码放到你的HTML头部(<head>标签内),确保没有遗漏:

<!-- 声明启用独立应用模式 -->
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- 设置状态栏样式(可选,根据你的App风格调整) -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- 必须:提供符合尺寸的启动图标(至少180x180,适配大部分iOS设备) -->
<link rel="apple-touch-icon" sizes="180x180" href="/path-to-your-apple-touch-icon.png">
<!-- 可选:添加启动页,提升App打开时的体验 -->
<link rel="apple-touch-startup-image" href="/path-to-your-startup-image.png">

关键注意事项

  • 严格检查apple-mobile-web-app-capable的content值:必须是纯"yes",不能有空格、大写或者其他字符,iOS 11.3对这个值的校验非常严格
  • 启动图标不能少:哪怕你用一个占位图,也要确保apple-touch-icon的路径正确且能访问到,无图标会直接导致独立模式失效
  • 站点必须是HTTPS:如果你的Web App部署在HTTP协议下,iOS 11.3+会直接拒绝启用独立模式,这是苹果的安全策略
  • 避免冲突配置:不要在页面中添加display: browser的viewport配置,比如<meta name="viewport" content="display=browser">这种会直接覆盖独立模式的设置

验证方法

可以在页面中加入一段JS代码,用来判断当前是否处于独立模式,方便调试:

window.addEventListener('load', function() {
  if (navigator.standalone) {
    console.log("✅ 已进入独立应用模式");
  } else {
    console.log("❌ 当前在浏览器模式下");
  }
});

最后一步

配置完成后,一定要先删除主屏幕上的旧图标,再重新添加一次!因为iOS会缓存之前的Web App配置,不删除旧图标可能看不到效果。

内容的提问来源于stack exchange,提问作者gae123

火山引擎 最新活动