我正在开发一个需要拥有相对较大的预填充数据库的跨平台(Android,IOS,WP)应用程序。我正在使用带有Cordova插件的Visual Studio 2013。 互联网上的大多数答案都指向here或here。但是,这些链接始终以"将预先填充的数据库复制到资产文件夹"。 在我的Visual Studio项目中,没有assets文件夹。这就是我所拥有的:
我应该怎么做?优选地,解决方案应该适用于所有平台。感谢。
答案 0 :(得分:3)
首次运行应用时无需复制或插入值。
而是将openDatabase与createFromLocation参数一起使用,如下所述:
答案 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