接pwa应用进阶-区分AB面-添加安装按钮而且区分不同的系统和浏览器的各种情况继续优化,主要是让manifest.json文件动态加载。
主要用途如下:
- 动态切换PWA的清单文件,例如根据不同的语言或者主题加载不同的
manifest。 - 更新资源路径,例如在不同环境下切换不同的manifest文件。
步骤及说明
修改
index.html中manifest的引用
将之前的1
<link rel="manifest" href="/manifest.json">
改为
1
<link rel="manifest" id="my-manifest">
向服务器动态的请求
manifest.json文件,代码如下:1
let manifestURL = 'https://www.lengmo714/manifest?p='+p;
其中,这里的链接为你自己服务器的链接,
p为参数,可以自己设定。修改
index.html中<ilnk>标签的href属性,代码如下:1
document.querySelector('#my-manifest').setAttribute('href', manifestURL);
示例代码:
我这里是想要将url地址中动态生成的参数带入我的应用中1
2
3
4
5
6let url = "https://lengmo714.top"+window.location.search;
let p = {start_url:url,'i1':'/icon-192x192.png','i2':'/icon-512x512.png'};
p = JSON.stringify(p);
p = encodeURIComponent(p);
let manifestURL = 'https://www.lengmo714/manifest?p='+p;
document.querySelector('#my-manifest').setAttribute('href', manifestURL);这里我将
manifest.json中的start_url和两个icon传给服务器,服务器返回给我一个manifest.json文件,然后我再动态的加载这个文件。
服务器代码
我这里是使用的go语言,具体代码如下:
1 | package main |
自己在服务器另起一个go的服务器即可。