根据添加到主屏幕的 URL 在 Web 应用程序清单中设置 PWA start_url

0 progressive-web-apps manifest.json

我想在用户访问登陆页面的清单中创建 start_url 。 https://example.com/1234 https://example.com/4321

这是我的php来获取整个url {{ Request::fullUrl() }} 我放在“start_url”:“{{ Request::fullUrl() }}”,它不会在json文件中获取。

我曾尝试将manifest.json更改为manifest.php,但不知道如何将json内容转换为php以使其工作。

<link rel="manifest" href="/_manifest.php?start_url=val" data-pwa-version="set_in_manifest_and_pwa_js">
Run Code Online (Sandbox Code Playgroud)

我知道这是老问题,我在互联网上搜索仍然找不到解决方案。 根据添加到主屏幕的 URL 在 Web 应用程序清单中设置 start_url 这没有解决方案。删除 start_url 不会使 PWA 工作。

有专家可以帮助我吗?欣赏!我是编码新手,请原谅我的知识有限。

Pet*_*eLe 5

Chrome(和大多数其他浏览器)要求您在清单中提供start_url,并且它不能是动态的。

您可以通过保存安装 PWA 时用户所在的页面来构建此行为。然后,将其设置start_url为一个简单的重定向页面,该页面检查用户安装时所在的页面,并将其重定向到该页面。

要保存安装 PWA 时用户所在的页面,请侦听该appinstalled事件,然后将页面保存到 localStorage:

window.addEventListener('appinstalled', () => {
  localStorage['installedFrom'] = window.location.pathname;
});
Run Code Online (Sandbox Code Playgroud)

然后,在重定向页面中,执行以下操作:

const installedFrom = localStorage['installedFrom'];
if (installedFrom) {
  window.location.replace(installedFrom);
} else {
  // No install page saved, send them to the home page?
}
Run Code Online (Sandbox Code Playgroud)