Can't access pre populated SQLite database using PhoneGap/Cordova in Android

前端 未结 3 810
面向向阳花
面向向阳花 2020-12-20 09:58

We are trying to create a mobile app using PhoneGap/Cordova. We need to ship this app with a pre-populated SQLite db. We are able to copy the DB using below code. But when w

相关标签:
3条回答
  • 2020-12-20 10:34

    In first place, can trying with the next DB file name:

    0000000000000001.db
    

    And for load file:

    File dbFile = getDatabasePath(".0000000000000001db");
    

    The DB file needs to be in the next route:

    yourProyect/assets/0000000000000001.db
    

    I recommend use "SQLitePlugin":

    SQLitePlugin GitHub

    In the "onDeviceReady()" function i use:

    if(!dbCreated){
        db = window.sqlitePlugin.openDatabase("0000000000000001", "1.0", "My Database", -1);
    }
    
    0 讨论(0)
  • 2020-12-20 10:34

    To access pre-populated database you should first copy the database file in www directory.

    Install this plugin DB-Copy plugin and copy the database from www directory into the device, using the copy plugin and then use Sqlite-storage plugin to access the database.

    PS. The copy of database from www directory is need it because each OS has different location to store databases...

    0 讨论(0)
  • 2020-12-20 10:40

    I faced the same problem, but the answer above does not help me, so I am writing my experience, it may help.

    I typically used a Cordova plugin named: me.rahul.plugins.sqlDB at https://github.com/an-rahulpandey/cordova-plugin-dbcopy

    It is a plugin focused to copy files from Cordova www folder to the right folder on Android/iphone.

    You have first to install the plugin, using:

    $ cordova plugin add https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git
    

    Then on Device Ready event:

    function onDeviceReady() {
        console.log(">device is ready");
        window.plugins.sqlDB.copy("mydb.sqlite", copySuccess, copyError);
    }
    
    0 讨论(0)
提交回复
热议问题