You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测页面是否运行在浏览器「添加到主屏幕」类Web App中?

检测Web App是否运行在「添加到主屏幕」环境中

方法1:使用window.matchMedia检测显示模式

Chrome、Edge、Firefox等现代浏览器支持通过display-mode媒体查询识别Web App的运行状态,「添加到主屏幕」的应用通常会以standalone(独立窗口)模式启动:

if (window.matchMedia('(display-mode: standalone)').matches) {
  console.log('当前处于添加到主屏幕的Web App环境');
} else {
  console.log('当前在普通浏览器标签页中');
}

也可以直接用CSS适配独立模式下的样式:

@media (display-mode: standalone) {
  /* 仅在独立Web App环境生效的样式 */
  body {
    padding-top: 20px;
  }
}

方法2:检测navigator.standalone(iOS Safari专属)

iOS Safari的「添加到主屏幕」应用会暴露navigator.standalone属性,当应用以独立窗口运行时,该值为true:

if (window.navigator.standalone) {
  console.log('当前处于iOS添加到主屏幕的Web App环境');
}

多平台兼容的综合检测逻辑

结合两种方法,覆盖主流浏览器和平台:

function isStandaloneWebApp() {
  const isStandardStandalone = window.matchMedia('(display-mode: standalone)').matches;
  const isIOSStandalone = window.navigator.standalone === true;
  
  return isStandardStandalone || isIOSStandalone;
}

// 使用示例
if (isStandaloneWebApp()) {
  // 执行Web App专属业务逻辑,比如隐藏浏览器导航栏适配
}

注意事项

  • 需确保Web App的manifest.json中配置了"display": "standalone",否则「添加到主屏幕」后可能不会进入独立模式
  • 部分安卓定制浏览器可能存在适配差异,需针对具体机型测试验证

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:40:54