是否可以在Android中使用phoneGap在SD卡中加载/创建数据库?

时间:2012-06-22 07:19:58

标签: java android cordova

如何使用phoneGap或任何可与phoneGap配合使用的插件从sdcard加载现有的.db文件或在SD卡中创建数据库?

我想在sdcard中保存我的.db文件,因为数据库的大小可能会增加。

3 个答案:

答案 0 :(得分:4)

我面临同样的问题,但经过对phonegap-cordova库的长时间阅读后,我发现它缺乏提供选择路径的灵活性。

原因可能是因为跨平台限制,库限制您使用默认的应用程序路径,所以在不同的平台上,库可以轻松获取文件。

但是!!有一个技巧来实现目标....

function onDeviceReady() {
    var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
}

实际上当JavaScript调用'openDatabase()'函数时,它会执行以下操作

  • 添加'/ data / data /< db_name
  • 之前的package_name_of_your_app> /'
  • 并在db_name
  • 之后添加'。db'

即:在上述情况下,结果将是;

  

/数据/数据/< package_name_of_your_app> /test.db

所以诀窍就在这里;

function onDeviceReady() {
      var db = window.openDatabase("../../../../mnt/sdcard/test", "1.0", "Test DB", 1000000);
}
  • 在db_name之前添加'../../../../mnt/sdcard/',不添加扩展名,因为库添加'.db'本身,如果添加任何扩展名,那么你的db文件将是的 DB_NAME。(yourextension).db的
现在什么!它会;

  • 添加'/ data / data /< db_name
  • 之前的package_name_of_your_app> /'
  • 并在db_name
  • 之后添加'。db'
  • 将使用你的db_name'../../../../ mnt / sdcard / test'

因此,结果将是;

  

/数据/数据/< package_name_of_your_app> /../../../../ MNT / SD卡/ test.db的

所以,它将返回到您的手机的根目录,然后 / mnt / sdcard

答案 1 :(得分:0)

是的,这是可能的。以及您需要在连接字符串中提及数据库文件路径的更改。更像代码参考看看here

答案 2 :(得分:0)

是的。您可以, 我只是提供链接, http://gauravstomar.blogspot.se/2011/08/prepopulate-sqlite-in-phonegap.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+GauravSTomarBootstrappingIntelligence+(Gaurav+S+Tomar+:+Bootstrapping+Intelligence

这实际上是关于预填充。你可以从中得到一些东西。对于想要预先填充的人来说就是这样。