我有一个聊天网络应用程序,我希望它可以离线工作。为此,我使用渐进式 Web 应用程序功能(Service Workers)来使用缓存来获取 shell 应用程序和已加载的消息。
我想要做的是能够在我离线时发布消息并让服务人员处理连接问题(即:将消息保存在某处直到离线并且一旦我们在线发送帖子消息)。
我想使用 Service Worker,因为如果用户在发布没有连接的消息后离开 Web 应用程序,我也想发送消息。
为此使用的最佳 API 是什么?
我看到了后台同步API,但它不是标准的,而且似乎近 2 年都没有更新。
如果有一种方法可以让客户端(Web 应用程序)完全不知道这种机制,那就太好了。
我的意思是我希望我的应用程序只做一个
fetch("/message", {method : "post", body : {content : "hey there"})
然后服务工作者只是拦截提取,如果我们在线那么它只是发送提取,但如果我们离线它“等待”连接建立再次,然后发送帖子。
我想知道服务工作者中是否有一个可用的事件监听器,当连接从离线变为在线时,它将被激活。这样我应该能够在离线时将请求存储在 indexDB 中,然后在在线时发送帖子。我看到了,navigator.onLine
但这不是一个事件:(