PWA 在重定向到其他 URL 时显示 Safari 控件

Posted

技术标签:

【中文标题】PWA 在重定向到其他 URL 时显示 Safari 控件【英文标题】:PWA shows Safari controls when being redirected to other URL 【发布时间】:2021-08-24 19:00:03 【问题描述】:

我正在尝试为 ios 创建 PWA。这工作正常。我的应用程序的主页如下所示:

如您所见,该应用程序很好地填满了我的整个屏幕。此页面的 URL 为 https://example.com/scanner。当用户第一次访问这个应用程序时,他会被重定向到https://example.com/scanner/login。但出于某种原因,PWA 显示了一些奇怪的 Safari 控件。

如何摆脱这些奇怪的控件?

/scanner/上的相关代码

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<link rel="manifest" href="manifest.json">

/scanner/login上的相关代码

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<link rel="manifest" href="manifest.json">

manifest.json


  "display": "standalone",
  "scope": "/scanner/"


【问题讨论】:

您使用的是哪个导航库?或者你不使用一个?反应路由器也许。您是否尝试设置 window.location.href ?看到这样的 safari web 控件一定是一个潜在的原因。 @Nostromo 重定向发生在 Rust 的服务器端。我认为在客户端进行安全检查不是一个好主意? 【参考方案1】:

解决了。它与清单无关。我只是错误地链接到它。 https://example.com/scanner 是由服务器端 Web 应用程序中的 URL 路由器确定的 URL。文件和其他资产需要静态链接。

manifest.json 中定义范围解决了我的问题中描述的问题。


  "display": "standalone",
  "scope": "/scanner/"
  ...


【讨论】:

以上是关于PWA 在重定向到其他 URL 时显示 Safari 控件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node.js 在重定向 url 中获取元素

通过 PHP head() 在重定向之前调用 URL?

Google OAuth 2 和 state 参数值需要在重定向 url 中注册

验收测试重定向到特定的 URL

Nginx在重定向时复制查询字符串

如何在android中将url加载到webview时显示进度?