问题描述
我目前正在开发 TWA/自定义标签应用程序。鉴于用户需要加载网站,我想实现一个离线页面,以防用户未连接到互联网。
使用 webview 时,我可以只加载一个 html 文件,使用自定义选项卡似乎更困难。
我目前在做什么:应用程序启动后,我会检查用户是否连接到互联网,如果连接失败,我想显示我的离线页面并让他们选择重试,否则启动自定义标签意图。
是否有一种简单的方法可以将我的离线 html 页面加载/注入到自定义选项卡中,或者是否有另一种方法可以将 html 文件加载到视图中?
解决方法
为您的 Web 应用程序实现离线页面的最佳方法是 to use a Service Worker。
这种方法的一个优点是,这个离线页面也适用于使用独立浏览器的用户。而且,通过添加 Web Manifest,您的应用程序将成为 Progressive Web App 并且将是 installable from the browsers。
Service Worker 可能是一个复杂的主题,因此我建议您使用 WorkBox 开始使用它。这是recipe for a simple offline page。
这种方法有一个警告 - Service Worker 在第一次使用应用程序时安装。从那一刻起,如果用户在离线状态下打开应用程序,它将显示离线页面。但是,如果用户在第一次打开应用程序时处于离线状态,他们可能仍然会看到离线恐龙。 https://crbug.com/816798 有一个未解决的问题需要改进。