在线和离线管理iPhone应用程序

时间:2016-02-18 05:17:40

标签: ios iphone sqlite offline

我坚持一点,我也在离线管理我的应用程序。我第一次从web服务获取所有配置文件数据并将其路径存储到sqlite中,我在更新这些数据时遇到问题,如果图像被更改,我应该如何通知我的应用程序,我在Google上搜索它,只有解决方案是发送在更新记录时将通知推送到应用程序。如果用户不允许推送通知怎么办?

是否还有其他解决方案可以离线管理应用,只有在从在线数据库更改记录时才更新?

4 个答案:

答案 0 :(得分:3)

在应用程序中实施离线模式

  • 在所有表中添加一个额外的列data_status表示在本地数据库中输入的数据处于脱机或在线模式。 1表示在线,0表示离线
  • 每隔一段时间调用API,并在一段频繁的时间间隔内调用最后一个响应日期和时间(如果需要频繁更新数据,否则需要时调用)并且API仅响应更改或新数据
申请在线时

  • 使用data_status = 1在本地数据库中调用API和存储数据 然后在本地数据库的屏幕上显示该数据
  • 现在再次调用具有服务器API响应时间和日期的相同API并且API仅响应更改或新数据。
应用程序离线时

  • 检查应用程序是否处于脱机状态然后跳过API调用函数并从本地数据库获取数据。
  • 现在,当动作执行更新插入等数据时。使该行data_status = 0
  • 当互联网来检查数据为data_status = 0的本地数据库并逐个调用Web服务,并获得每个API的成功使data_status = 1并更新本地数据库中的行。

谢谢

答案 1 :(得分:1)

我建议在timestamp和唯一userId上提供图片名称。如下所示。

ImageName = yourUserId_timestamp.(111_1234567).

因此,图像名称始终是唯一的。所以当你从服务器获取日期时。首先检查图像是否已存在于数据库中。如果不是,则在userId的帮助下更新图像名称并存储它。如果它然后离开它。

由于

答案 2 :(得分:1)

从您的(应用程序)方面无需更改,您的服务器人员可以处理此流程。每当上传新图像时,都会生成一个用于特定对象的新URL。您可以在本地替换它(只需更新现有数据)。

答案 3 :(得分:0)

您可以使用API​​来检查App中缓存的数据版本。如果服务器上有可用的更新版本,则必须使用更新的服务器数据更新本地数据。