如何使用meta标签在manifest.json文件中添加Urls和web_Urls

kis*_*tel 6 javascript angularjs progressive-web-apps

我正在创建一个渐进式Web应用程序,并且需要使用meta标记在manifest.json文件中添加当前URL。

我创建了这个manifest.json:

{
 "name": "app",

  "icons": [{
    "src": "images/avatar.jpg",
    "sizes": "64x64"

  }, {
    "src": "images/avatar.jpg",
    "sizes": "64x64"
    }, {
    "src": "images/avatar.jpg",
    "sizes": "128x128",
    "density": 2
   }],
   "app": {
    "urls": [
           "https://www.example.com"
           ],
    "launch": {
          "web_url": "https://www.example.com"
  }
 }
  "theme_color":"#06ADD5",
  "display": "standalone",
 "orientation": "portrait"
}
Run Code Online (Sandbox Code Playgroud)

上面的JSON在静态URL和Web URL中可以正常工作,但是我想让它作为动态URL工作(EX:www.example.com/ <PRODUCT_ID>)

Jef*_*ick 7

该 JSON 不符合Web App Manifest 规范,这是 Chrome 和 Firefox 当前在将 Web 应用程序添加到设备主屏幕时用于元数据的规范。具体来说,您希望使用该start_url属性来指定要打开的初始 URL。

在任何情况下,/path/to/manifest.json根据某些标准自定义内容的问题都可以归结为您通常如何在将任何资源返回给客户端之前对其进行服务器端自定义。你可以通过在URL参数,如/path/to/manifest.json?start_url=*something*,然后让你的Web服务器返回一个不同start_url的依据是什么JSON响应值的东西是。

如果你不能实现服务端逻辑,也许是因为你只是部署静态文件,对所有东西都使用客户端渲染,那么你最好的办法是manifest-*something*.json提前生成多个文件,每个文件都有不同的start_url值,然后根据对您有意义的任何标准,将<link rel="manifest">每个页面上的标记设置为指向适当的manifest-*something*.jsonURL。