Sencha Touch 2中的sqlite和后台服务

时间:2013-06-12 16:49:58

标签: android sencha-touch cordova sencha-touch-2

我是Sencha Touch的新手,我们需要构建一个跨平台的移动应用程序,它涉及通过REST Web Services作为Sencha Touch中的后台服务以及如果互联网不可用数据的大量数据的上同步和下行同步必须存储在本地sqlite db中,并在连接到Internet后,必须同步数据。我用谷歌搜索了它,但没有得到足够的信息。有人可以指导我如何实现这个目标吗?

提前致谢。

5 个答案:

答案 0 :(得分:1)

在Sencha Touch中没有直接使用SQLite的方法。但是,您确实可以使用Phonegap在Sencha Touch应用程序中实现SQLite数据库连接。这应该很容易实现。您还可以查看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 :(得分:0)

1) 我是Sencha Touch的新手,我们需要构建一个跨平台的移动应用程序

您需要从sencha docs开始,然后开始构建一些简单的应用程序。

了解Sencha Class System

在sencha框架文件夹中有一个示例文件夹,你可以在那里找到许多例子,用它来开始学习并试验它。


2) 涉及通过REST Web服务作为Sencha Touch中的后台服务的大量数据的上同步和下行同步

然后,您需要了解一些更具体的概念,如Store和MVC Pattern

如果您不熟悉MVC,那么

MVC in Depth Part 1

MVC in Depth Part 2

Useful SO link


3) 如果互联网不可用,则必须将数据存储在本地sqlite数据库中,并在连接到互联网后,必须同步数据

我认为有两种方式

1,如果您要使用PhoneGap(我正在使用它),您可以使用PhoneGap connection功能检查互联网是否可用,如果没有,那么有办法将数据存储在sencha中的本地sqlite db

2,我认为sencha touch本身有device connection检查功能(我还没有使用它)来检查互联网可用性,如果没有,那么就像我上面提到的那样你可以使用本地的sqlite db。

所以开始尝试,如果你被困在这里。你会得到我和我的SO用户的帮助。

答案 2 :(得分:0)

我使用了以下插件用于后台和计时器服务。

https://github.com/Red-Folder/Cordova-Plugin-BackgroundService

我使用phonegap api访问sqlite。

http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html

答案 3 :(得分:0)

我们正在构建相同类型的应用程序。您需要使用Phone Gap通过Sencha Touch与sqlite进行通信。但Sencha Touch商店无法直接使用phonegaps功能向/从sqlite插入/选择数据。您需要在Sencha Touch中使用sqlite存储代理存储。

答案 4 :(得分:0)

ST的内置Ext.Connection.IsOnline()对我来说似乎有点不稳定(有报道ST论坛上它显示了一个连接,当手机处于飞行模式或在一个打击垫上禁用wifi时;我的经验似乎是能够检测到接入点的存在与否,而不是接入点是否可以访问互联网),所以我选择了cordova(phonegap)来检查在线状态。

您也可以在请求中设置相当激进的超时,并查看response.status是否为0(尽管这并不一定意味着您没有Internet连接:http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute

对于SQLite,我使用shepsii的代理(http://www.sencha.com/forum/showthread.php?195991)已经有一段时间在iPad和Android上都取得了成功。在阅读了ST的Sqlite代理现在在2.2.1版本中稳定之后,我最近转而使用该“官方”版本。虽然它在iPad上运行良好,但在我的Android平板电脑上,应用程序现在挂在加载屏幕上。到目前为止,我不确定这是由于代理还是由于我做过的事情,但要小心谨慎。

在我的应用程序的Win8版本中,我只使用了一堆JSON文件,这些文件可以存储在用户的本地或漫游存储中。为了我的目的,使用这种方法模拟SQL查询似乎很容易,所以我想在ST中采用相同的方法。唯一的问题是我不知道将JSON文件放在何处。