【问题标题】:Set PWA start_url in web app manifest based on the URL that was added to homescreen根据添加到主屏幕的 URL 在 Web 应用清单中设置 PWA start_url
【发布时间】:2021-01-30 02:46:39
【问题描述】:

我想在用户访问登录页面的清单中创建 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">

我知道这是个老问题,我在整个互联网上搜索仍然找不到解决方案。 Set start_url in web app manifest based on the URL that was added to homescreen 这没有解决方案。删除 start_url 不会使 PWA 工作。

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

【问题讨论】:

    标签: progressive-web-apps manifest.json


    【解决方案1】:

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

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

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

    window.addEventListener('appinstalled', () => {
      localStorage['installedFrom'] = window.location.pathname;
    });
    

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2021-05-13
      • 2018-11-03
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      相关资源
      最近更新 更多