接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的服务器即可。