报纸/杂志的钛appcelerator数据存储

时间:2013-02-19 18:19:06

标签: javascript android titanium appcelerator-mobile

我想开发使用Titanium Appcelerator查看报纸/杂志的应用程序,我有一个问题如何在手机上存储用户无法通过应用程序访问的数据?该数据应具有哪种格式(blob,pdf,纯文本)?它们应该存储在db中还是存储为文件?你能在下面发表你的建议吗?

1 个答案:

答案 0 :(得分:1)

在Titanium中,您有几种存储数据的选项。首先,您应该检查您获得的数据作为输入。是JSON还是PDF或纯文本或其他什么。 以下选项可用: - 使用集成数据库(SQLite)存储数据 - 当输入数据是纯文本或json可以转换为文本或类似的东西时,这可能是适当的。如果需要,还可以将blob数据存储在数据库中。 - 使用文件系统存储数据:在iOS和Android上(我认为不是mobileweb),您可以将数据存储在文件存储上。如果您的输入数据是二进制文件(pdf或类似文件),这将非常有用。

然而,在这两种情况下,用户都能够并且无法读取数据。 - iOS:用户将能够读取文件系统上持久存储的文档,也可能读取数据库中的数据 - Android:我认为在Android上这取决于设备是否具有root访问权限以及存储该数据的位置(在app文件夹中或外部/内部但可用的可访问存储空间中)

在这两种情况下,访问这些数据并不容易。通常普通用户不会这样做。对于专业用户来说,阅读这些数据应该很容易。那么如何保护这些数据,以便用户无法读取它?

您要么将数据加密存储在数据库中(默认情况下,数据库加密不适用于钛,因此您需要使用模块或自行加密数据)或者加密存储(这也取决于您 - 那里文件系统上没有现成的方法。

在我看来,第一个解决方案是更好的解决方案。我会做以下事情: - 获取数据(来自服务器或其他地方,数据类型无关紧要) - 转换为base64(二进制文件有用和必需,但也用于纯文本) - 使用您选择的加密算法加密base64 - 存储在数据库中

因为这可能需要很多内存,所以应该提供删除此数据以节省空间的选项。