在Cordova中打开预先填充的SQLite数据库

时间:2014-12-26 13:06:23

标签: visual-studio cordova assets visual-studio-cordova

我正在开发一个需要拥有相对较大的预填充数据库的跨平台(Android,IOS,WP)应用程序。我正在使用带有Cordova插件的Visual Studio 2013。 互联网上的大多数答案都指向herehere。但是,这些链接始终以"将预先填充的数据库复制到资产文件夹"。 在我的Visual Studio项目中,没有assets文件夹。这就是我所拥有的:enter image description here

我应该怎么做?优选地,解决方案应该适用于所有平台。感谢。

4 个答案:

答案 0 :(得分:3)

首次运行应用时无需复制或插入值。

而是将openDatabase与createFromLocation参数一起使用,如下所述:

http://redwanhilali.com/ionic-sqlite/

答案 1 :(得分:1)

SQLite强制您创建执行完整数据库"创建表"在App内的一个函数中命令,对吧?

仅当数据库不存在时,该功能才会执行。如果已经存在=不执行该功能!

所以......到了#34;创建表"命令,添加" INSERT INTO"你需要填充的命令!这只会在第一次执行。

如果需要更清晰的代码,可以将所有数据放入Array中,然后使用For循环执行Inserts。

(我在许多应用程序中都这样做,并且像魅力一样工作!)

增加:

解决" Code Brevity"我建议2选项:

选项1 - XML文件:使用信息添加外部XML文件,然后在" create db"中读取它。功能,并执行"插入"在For循环中读取XML文件。

选项2 - 创建一个特殊的js文件(例如命名为#34; populateDB.js"例如!)并在那里输入所有代码......你再也看不到代码!

我希望它有所帮助,因为您不能在项目中包含数据库,您必须在设备上创建它...

答案 2 :(得分:1)

我喜欢你的问题。这让我想到即将开展的项目,以及我将如何解决类似的问题。

您分享的链接:http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html是一个很好的起点。引用的“assets”目录不可见,因为通过Visual Studio,您正在查看Windows平台版本的代码。请注意,在您引用的链接中的Xcode / iOS屏幕截图中,数据库文件不在资源文件夹中,而是“资源”,大致相当于Android项目中的资产。

您需要Mac和Xcode来构建iOS项目,这不能通过Visual Studio或Windows机器完成。当cordova使用“cordova platform create ios”命令创建项目时,您将看到一个资源目录,您可以继续执行说明。

同样,使用Android,您可以在Eclipse或其他编辑器/文件浏览器中打开Android项目并执行相同操作。我自己,用Visual Studio来浏览Visual Studio解决方案中的其他平台,我不够勇敢(缺乏经验)。

增加注意:在http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html,请务必仔细阅读最近有关将文件复制到应用内的讨论/评论。似乎仍然可以正常工作,但是使用较新版本的Cordova,这个过程略有改变。

答案 3 :(得分:0)

使用Visual Studio(和Phonegap)时,您无法看到资源文件夹。如果您想在Visual Studio中开发预填充数据库,最好使用sqlite插件。
你需要两个插件。

1)Cordova-sqlite-evcore-extbuild-free
2)cordova-plugin-dbcopy - >这个插件会将你的数据库复制到assets文件夹。

我认为以下Git会帮助你 https://github.com/ymochi/prepopulated-DB-for-hybrid-applications