如何使用预先填充的sqlite数据库发送phonegap 3.5应用程序

时间:2014-09-23 15:58:09

标签: database sqlite cordova

我正在尝试使用Cordova / Phonegap 3.5构建跨平台移动应用程序。

首先,我正在尝试使用带有Android SDK的Eclipse创建Android版本。

其中一个要求是我希望我的应用程序附带一些数据库表格,并预先填充了一些数据。

到目前为止,我已尝试过各种各样的东西,但似乎没有任何工作。

这是我到目前为止所做的:

  1. 使用Windows上的sqlite3命令行实用程序在其中创建数据库和包含数据的表。结果我得到了我的mydb sqlite数据库文件。
  2. 我已将此db文件放在assets / databases文件夹下,如许多帖子所示。
  3. 我用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);   } }

  4. 在我的主要活动中,我只是调用上面的类,以确保执行它。这是正确的方法吗?

  5. 在我的HTML文件中,我正在尝试打开数据库并对其进行一些操作,如下所示:http://docs.phonegap.com/en/3.1.0/cordova_storage_storage.md.html#Storage

  6. 根据上面的文档,window.openDatabase()函数调用应该返回现有的sqlite数据库,并给我一个句柄来进一步处理它。

  7. 但这似乎并没有发生。当我运行我的应用程序时,它不会在LogCat控制台上给我任何错误,但它也找不到我预先填充的数据库。

    注释

    使用Cordova 3.5,我没有使用任何外部sqlite插件,因为它应该是在这个版本内置。这是对的吗?

    作为附注 - 如何浏览我的Android设备(Nexus 7平板电脑)以实际验证数据库是否已创建?

    非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

虽然这个问题已经过时了......认为它可能会帮助某人发布我的解决方案 - 发现于2017年。(由于PhoneGap已经发生变化,旧的解决方案可能不再适用或在Android和Apple应用市场上被接受。)I长期处理这个问题 - 关于如何导入预先填充的数据库的问题 - 没有很多简单的解决方案。我找到了最好的 - 目前只是唯一的解决方案是LiteHelpers CORDOVA-SQLITE-EXT(https://github.com/litehelpers/cordova-sqlite-ext

我已将此添加到我的应用中并且运行良好。我不得不从PhoneGap切换 - 并使用CORDOVA - 但它对我有用。