Angular PWA无法在野生动物园和旧版浏览器上脱机工作

时间:2019-01-30 13:54:50

标签: angular manifest service-worker progressive-web-apps

我按照以下步骤创建了PWA: https://angular.io/guide/service-worker-getting-started

它在我的Chrome桌面上可以完美离线运行,但在iOS 12 Safari或Android 5 Chrome上不能正常运行。 我正在使用http-server命令从本地ssl服务器使用IP XXX.XXX.XXX:8080访问网络。

我不明白。我需要为服务浏览器无法正常工作的旧浏览器和野生动物园手动配置清单。还是我在CLI中生成的Angular PWA项目应该为我做一切?

我的代码示例 https://github.com/GuilhermeLessa/teste-pwa

1 个答案:

答案 0 :(得分:0)

我是新手,仍然无法阻止自己在这里输入,请纠正我! Safari在移动设备上的最大支持为50Mib(如文档所述,该50Mb用于indexedDB和Cache Api),但在台式机上却说是无限的,我再也没有机会进行验证。我使用Express,Nodejs和一些显而易见的JS开发了一个应用程序。它与Chrome,Firefox和Opera(在Android设备上)兼容,MS Edge 38版本似乎不支持它。 Safari以一种离线时支持的方式来加载页面,文本和图像,但不加载我认为是50Mib限制的原因的视频,因为我只是在移动设备上尝试过。 MS Edge版本42几乎完全支持(我的ASUS p027至少)没有安装最新MS Edge的计算机。另请注意,并非所有旧版浏览器都支持您是否在清单中提及它,因为它们与Service Worker或Cache API不兼容。我知道制作一个应用程序PWA的步骤之一就是拥有清单文件,但是另一方面,PWA在没有清单文件的情况下也可以工作,只有灯塔的分数小于100%。因此,确切地说,我会说旧的浏览器不支持PWA,您仍然会遇到麻烦。此外,Chrome和Opera浏览器可以拥有多达33%的可用磁盘空间的存储池,每个原始存储池中的可用磁盘空间最多可以有20%。 Firefox池是可用磁盘空间的50%,但源池的最大值可能为2048,这称为硬限制(取决于池,上限可以小于此上限)。此外,浏览器还执行LRU(最近最少使用)策略,这也称为尽力而为临时存储,而不适用于持久性存储。对于chrome高位网站参与度,或标记一个站点书(当书签的标记少于5个),将站点添加到主屏幕或允许推送通知,如果chrome这4个选项中的任何一个都会将其变成永久存储,因此LRU不会在其上发生。在Firefox中,您必须对其进行显式编码,然后浏览器会使用弹出窗口询问用户是否对持久性存储感到满意。我知道我已经改行了,但是这一切都属于PWA。希望你能得到更好的答案。干杯:)