【问题标题】:Can I sync data from app to the server even if the app is closed?即使应用程序关闭,我可以将数据从应用程序同步到服务器吗?
【发布时间】:2018-07-04 19:55:54
【问题描述】:

我正在开发一个 Ionic 项目,该项目在用户离线时将数据存储在本地(在 SQLite 数据库中),并在用户重新上线时同步这些数据,将这些数据存储在服务器的 MySQL 数据库中。

如果用户不时在线,我会检查应用程序,并且我正在使用这个 Background Mode 插件在后台运行应用程序。但是,我面临一些问题。当用户关闭应用程序并稍后上线时,应用程序并没有真正运行,所以我无法将数据发送到服务器。据我所知,这个插件只有在用户不从内存中“清理”应用程序(通过从最近的应用程序列表中将其删除)时才有帮助,甚至插件的作者也说“自己使用插件”风险!”。

我找到了这个question,但它对我的情况并没有帮助。

有没有什么方法可以在应用关闭的情况下与服务器同步这些数据?

【问题讨论】:

    标签: ionic-framework synchronization ionic3 data-synchronization


    【解决方案1】:

    我没有使用 MySql 的经验,但是使用 Google Firestore 可以很容易地实现这样的功能。我建议您试一试,尤其是在非Sql 数据库开始成为新规范的情况下。

    【讨论】:

    • 我已经阅读过它,但我必须与现有数据库集成,而且现在迁移将是一项巨大的努力。如果我使用 Firestore,我将不得不使用他们的数据库,对吗?
    • 不幸的是,是的。但是,我仍然认为,如果可以的话,在这方面工作对你来说是有益的。云功能、离线更新等
    • 是的,从长远来看,我们正在考虑它。目前,我们正试图找到一种方法来保存我们的数据库,因为其他网络软件也在使用它。但是我们在这次搜索中运气不佳=/。不管怎样,谢谢你的建议!
    【解决方案2】:

    是的,你可以。根据项目的需要,有很多方法可以做到这一点。 一种方法是将数据存储在 LocalStorage 中,创建一个在您打开应用程序时运行的服务,以验证数据是否已被修改。 另一个是使用 Ionic Native 的 BackgrounMode 插件 (https://ionicframework.com/docs/native/background-mode/) 并每隔一段时间执行一个函数。这是两种可能的方式,您可以分享有关该项目的更多信息以查看一些最佳实践。

    【讨论】:

    • 创建服务对我没有帮助,因为如果用户不打开应用程序,同步将不起作用。我现在正在使用这个插件,正如我在问题中所说的那样,它有一些问题。你知道另一种选择吗?
    • 嗨,在这种情况下,您可以在应用关闭时使用监听器 platform.pause.subscribe(e => {});然后使用 Ionic Native BackgroundMode 插件启用 backgroundmode,并执行 setTimeout 函数使它们在后台运行。 Homewer,你可以在应用初始化时添加该功能,因为backgroundMode不太好用
    • 我们现在正在使用这种策略,但正如我所说,它在某些情况下不起作用。我们正在寻找是否有办法让它在所有场景中都能正常工作。
    • @EvertonLenger 你找到解决方案了吗?如果是,那么请提供帮助,因为我也在寻找它。谢谢
    • @Hashmi 很遗憾,不,我们不得不使用另一种方法并对应用程序的逻辑进行一些更改才能满足我们的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多