如何在连接可用时离线启动应用程序并同步

How to start app offline and sync when connection is available

我正在 android 运行 开发库存应用程序。我打算使用 HTML5、JS、pouchdb 和 couchdb。虽然我知道这个应用程序在连接到服务器后,可以在没有任何连接和稍后同步的情况下脱机工作,但如果没有互联网连接,我该如何启动应用程序?

我尝试使用 android 游戏商店的一些服务器,但我想避免使用它。

应用程序应该在没有任何互联网连接的情况下启动。 在本地保存数据。 即使在退出后,数据也应该可用并在互联网连接可用时同步。

离线工作然后与在线服务器同步数据有时可能非常棘手。

场景

在不影响您的用户体验的情况下执行此操作的最推荐方法是想知道您的应用程序将在哪些场景中运行,如下所示:

  • 您的用户是否需要注册或登录任何服务或帐户?
  • 您的用户数据是否需要预先注册到您的在线服务中,然后用户才能在本地开始使用它?

可能的解决方案

在设计您的应用的启动方式之前,尝试回答上述问题。

我的用户需要注册或登录在线帐户才能开始创建库存

这表示您的用户在首次启动您的应用时必须连接到互联网。

  1. 如果这是真的,那么您的应用必须在第一次启动时要求登录或 注册

    • 在这种情况下,如果用户第一次启动应用程序时没有连接。您的应用程序必须在登录屏幕上停止(这是常用流程)
  2. 用户登录后,您必须将从在线服务器检索的用户数据存储到本地存储

  3. 当用户下次启动应用程序时,应用程序会自动识别并跳过login/auth屏幕。

  4. 您的应用必须遵循正常的工作流程(创建、编辑、删除库存)

我的用户无需登录即可在我的应用程序上创建库存

这个答案自动说你的用户数据不需要事先在线注册,在离线修改之前,所以这里不需要互联网,包括用户第一次打开应用程序时。

  • 在这种情况下,您将开始检查互联网连接,如果有互联网,您将要求用户进行授权。
  • 在这种情况下,您的应用程序必须从其原始工作流程开始,离线创建所有数据,然后,当用户登录时,它会尝试将本地数据与在线存储的数据同步。

TL:DR

在所有这些情况下,您正在寻找 Progressive Web App,PWA 是在客户端离线工作的 Web 应用程序。