我是 Sencha Touch 的新手,我们需要构建一个跨平台的移动应用程序,它通过 REST Web 服务作为 Sencha Touch 的后台服务,涉及大量数据的上同步和下同步,如果互联网不可用,数据必须存储在本地 sqlite db 中,连接到互联网后,必须同步数据。我已经用谷歌搜索了它,但没有得到足够的信息。有人可以指导我如何实现这一目标吗?
提前致谢。
我是 Sencha Touch 的新手,我们需要构建一个跨平台的移动应用程序,它通过 REST Web 服务作为 Sencha Touch 的后台服务,涉及大量数据的上同步和下同步,如果互联网不可用,数据必须存储在本地 sqlite db 中,连接到互联网后,必须同步数据。我已经用谷歌搜索了它,但没有得到足够的信息。有人可以指导我如何实现这一目标吗?
提前致谢。
在 Sencha Touch 中没有直接使用 SQLite 的方法。但是,您确实可以在 Sencha Touch 应用程序中使用 Phonegap 来实现 SQLite DB 连接。这应该很容易实现。您还可以查看 Sencha 中的 Localstorage 或 WebSQL 功能,但我不确定这是否适合您的要求。
以下是一些有用的链接:
http://hansjar.blogspot.in/2013/04/how-to-easily-add-prepopulated-sqlite.html
http://druckit.wordpress.com/2012/11/16/using-the-sencha-touch-2-1-sql-proxy/
1)我是Sencha Touch的新手,我们需要构建一个跨平台的移动应用
您需要从sencha 文档开始并开始构建一些简单的应用程序。
学习煎茶班系统
在 sencha 框架文件夹中有一个示例文件夹,您可以在那里找到许多示例,使用它来开始学习和试验它。
2)这涉及到通过REST Web Services作为Sencha Touch中的后台服务对相当大量的数据进行上同步和下同步
然后,您需要了解一些更具体的概念,例如 Store 和 MVC Pattern
如果你不熟悉 MVC,那么
3)如果互联网不可用,数据必须存储在本地sqlite db中,连接到互联网后,必须同步数据
我认为有两种方法
1,如果你打算使用PhoneGap(我正在使用它),你可以通过使用PhoneGap连接功能来检查互联网是否可用,如果没有,那么有办法将数据存储在sencha的本地sqlite db中。
2,我认为 sencha touch 本身具有设备连接检查功能(我还没有使用它)来检查互联网可用性,如果没有,那么如上所述,您可以使用本地 sqlite db。
所以开始尝试,如果你在这里卡住了。你会从我和我的 SO 用户那里得到帮助。
我已将以下插件用于后台和计时器服务。
https://github.com/Red-Folder/Cordova-Plugin-BackgroundService
我已经使用 phonegap api 来访问 sqlite。
http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html
我们正在构建相同类型的应用程序。您将需要使用 Phone Gap 通过 Sencha Touch 与 sqlite 进行通信。但是Sencha Touch store 不能直接使用phonegaps 函数将数据插入/从sqlite 中插入/选择数据。您将需要使用 sqlite 存储代理在 Sencha Touch 中存储。
ST 的内置 Ext.Connection.IsOnline() 对我来说似乎有点不稳定(ST 论坛上有报道称,当手机处于飞行模式或在平板电脑上禁用 wifi 时,它会显示连接;根据我的经验似乎能够检测到接入点的存在与否,但不能检测到接入点是否可以访问互联网),所以我使用cordova(phonegap)检查在线状态。
您也可以对您的请求设置一个相当激进的超时,看看 response.status 是否为 0(尽管这并不一定意味着您没有 Internet 连接:http: //www.w3.org/TR/XMLHttpRequest/#状态属性
至于 SQLite,我使用 shepsii 的代理(http://www.sencha.com/forum/showthread.php?195991)一段时间,在 iPad 和 Android 上都取得了成功。读到 ST 的 Sqlite 代理现在在 2.2.1 版本中稳定,我最近切换到使用那个“官方”版本。虽然它在 iPad 上运行良好,但在我的 Android 平板电脑上,该应用程序现在挂在加载屏幕上。到目前为止,我不确定这是由于代理还是我所做的一些愚蠢的事情,但要小心。
在我的 Win8 版本的应用程序中,我只使用了一堆 JSON 文件,这些文件可以存储在用户的本地或漫游存储中。出于我的目的,使用这种方法来模拟 SQL 查询似乎很容易,所以我正在考虑在 ST 中采用相同的方法。唯一的问题是我不知道将 JSON 文件放在哪里。