0

我正在努力寻找解决我认为是常见要求的解决方案,所以我希望有人可以帮助我提供一些关于要搜索什么/要探索的区域的指示。

背景

我正在构建一个 iOS 移动应用程序。我正在使用 realm.io 在本地存储数据。该应用程序预装了 Wordpress mySQL 数据库内容的快照(它使用自定义类型)。WP 数据库的内容只能通过 Wordpress 安装写入,移动应用无法写入数据。

客观的

所以,我希望能够检查自给定日期(本地数据库上次更新时)以来的更改并将更改的记录发送到移动应用程序(通过 wp JSON api?)。

我想我可以获取“自某个日期以来的帖子”,但我需要一个自给定日期以来所有创建、更新和删除操作的完整列表。

由于该应用程序是只读的,我认为这种类型的单向同步会非常简单,但我找不到通用的解决方案。

任何可以为我指明正确方向的想法都会很棒。显然,如果有人有任何使用 realm.io 做这种事情的经验,那将是惊人的 :-)

4

1 回答 1

1

Realm 还不支持跨不同文件的任何同步机制。虽然我们对此有一个问题,但您可能会在不久的将来寻找解决方案。

更新: Realm 推出了Realm 移动平台。这提供了同步功能,并将大大简化此用例的解决方案。

您可以使用例如服务器端 Node.js 绑定从 MySQL Wordpress 安装中提取新数据,并将它们推送到由领域对象服务器服务的全局领域。这可以从移动应用程序进行只读同步,这将自动接收增量并向您的用户提供更新的数据。


无论您自己提出什么机制,它都需要您从 iOS 应用程序对领域数据库具有读写访问权限,以便您可以使用新数据对其进行更新。

正如您所描述的那样推送更改的记录可能不起作用。

Apple 的推送通知服务 (APNS) 是您的应用程序处于后台或挂起时唯一有效的反向通信通道,它允许您发送非常小的有效负载。你会用它来通知你的 iOS 应用程序,服务器端发生了一些变化,并且有新的数据要加载。然后,您将向基于 JSON 的 API 发起请求,等待响应,将返回的 JSON 映射到 Realm 对象并将它们存储在您的数据库中。
您可能想在iOS 官方 App Programming Guides 的后台执行章节的“在后台下载内容”部分阅读更多内容。

虽然从应用程序包中预先植入数据库似乎是个好主意,因为用户在下载应用程序后最初不需要等待,这将使用数据扩大应用程序本身,这在未来可能变得完全无关紧要。

于 2016-05-18T17:29:52.483 回答