PWA:如何在 manifest.json 中拥有动态 "start_url"

PWA: How to have dynamic "start_url" in manifest.json

我在创建 PWA 时偶然发现 manifest.json 文件中的“start_url”有问题。我试图变成 PWA 的网站取决于查询参数,而“start_url”:“/”不获取查询参数。

我尝试从 manifest.json 中删除 start_url,这似乎允许将应用添加到主屏幕(在 iOS 上),但我猜是在 android 上没有 start_url?

就不会出现安装提示

有人遇到过类似的问题吗?

您可以像这样创建动态清单:

然后你可以做类似 "start_url": "your-url?query=" + queryValue.

<link rel="manifest" id="my-manifest-placeholder">

var myDynamicManifest = {
  "name": "App name",
  "short_name": "short",
  "start_url": "your-url?query=" + queryValue
  "background_color": "#000000",
  "theme_color": "#0f4a73",
  "icons": [{
    "src": "icon.png",
    "sizes": "512x5126",
    "type": "image/png"
  }]
}

const stringManifest = JSON.stringify(myDynamicManifest);
const blob = new Blob([stringManifest], {type: 'application/json'});
const manifestURL = URL.createObjectURL(blob);
document.querySelector('#my-manifest-placeholder').setAttribute('href', manifestURL);

var link = document.createElement('Link');
link.rel = "manifest";
link.setAttribute('href', 'data:application/json;charset=8' + stringManifest)