我正在尝试使用Cordova / Phonegap 3.5构建跨平台移动应用程序 .
首先,我正在尝试使用Eclipse和Android SDK创建Android版本 .
其中一个要求是我希望我的应用程序附带一些创建的数据库表,并预先填充了一些数据 .
到目前为止,我已经尝试了各种各样的东西,但似乎没有任何工作 .
这是我到目前为止所做的:
-
使用Windows上的sqlite3命令行实用程序在其中创建了包含数据的数据库和表 . 结果我得到了我的mydb sqlite数据库文件 .
-
我已将此db文件放在assets / databases文件夹下,如许多帖子所示 .
-
我使用github.com/jgilfelt/android-sqlite-asset-helper来创建数据库:
public class MyDatabase扩展SQLiteAssetHelper {private static final String DATABASE_NAME =“database_name”; private static final int DATABASE_VERSION = 1; public MyDatabase(Context context){super(context,DATABASE_NAME,null,DATABASE_VERSION); }}
-
在我的主要活动中,我只是调用上面的类,以确保执行它 . 这是正确的方法吗?
-
在我的HTML文件中,我正在尝试打开数据库并对其进行一些操作,如下所示:http://docs.phonegap.com/en/3.1.0/cordova_storage_storage.md.html#Storage
-
根据上面的文档,
window.openDatabase()
函数调用应该返回现有的sqlite数据库并给我一个句柄来进一步处理它 .
但这似乎并没有发生 . 当我运行我的应用程序时,它不会在LogCat控制台上给我任何错误,但它也找不到我预先填充的数据库 .
笔记
使用Cordova 3.5,我没有使用任何外部sqlite插件,因为它应该是在这个版本内置 . 它是否正确?
作为旁注 - 如何浏览我的Android设备(Nexus 7平板电脑)以实际验证数据库是否已创建?
非常感谢您的帮助 .
1 回答
虽然这个问题很老......认为它可能会帮助某人发布我的解决方案 - 发现于2017年 . (由于PhoneGap已经改变,旧的解决方案可能不再适用或在Android和Apple应用程序市场上被接受 . )我在此工作问题很长一段时间 - 关于如何导入预先填充的数据库的问题 - 没有很多简单的解决方案 . 我找到了最好的 - 目前只是唯一的解决方案是LiteHelpers CORDOVA-SQLITE-EXT(https://github.com/litehelpers/cordova-sqlite-ext)
我已将此添加到我的应用程序中并且运行良好 . 我不得不从PhoneGap切换 - 并使用CORDOVA - 但它对我有用 .