我正在创建一个渐进式Web应用程序,并且需要manifest.json使用meta标记在文件中添加当前URL 。
manifest.json
我创建了这个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" }
上述JSON工作在静态URL和网页URL很好,但我想要得到它工作作为一个动态的URL(EX: www.example.com/<PRODUCT_ID>)
www.example.com/<PRODUCT_ID>
该JSON不符合Web App Manifest规范,这是Chrome和Firefox当前在将Web App添加到设备主屏幕时用于metdata的规范。具体来说,您想使用start_url属性指定要打开的初始URL。
start_url
无论如何,/path/to/manifest.json基于某些条件定制内容的问题归结为您通常如何在将资源返回给客户端之前在服务器端对任何资源进行定制。你可以通过在URL参数,如/path/to/manifest.json?start_url=*something*,然后让你的Web服务器返回一个不同start_url的依据是什么JSON响应值 的东西 是。
/path/to/manifest.json
/path/to/manifest.json?start_url=*something*
如果您不能实现服务器端逻辑,可能是因为您仅部署静态文件并使用客户端呈现的所有内容,那么最好的选择是manifest-*something*.json提前生成多个文件,每个文件具有不同的start_url值,然后根据<link rel="manifest">您认为合适的manifest-*something*.json条件,将每个页面上的标签设置为指向适当的URL。
manifest-*something*.json
<link rel="manifest">