Подтвердить что ты не робот

Обновление PhoneGap от Cordova до 5.1.1 с 2.2.0

У меня есть приложение Cordova, которое является версией 2.2.0. Теперь я хочу обновить, я обновил часть, после обновления, изображения приложений не отображаются, на экране появился пустой экран. даже экран заставки тоже не появился. Вот мой код

Теперь я достиг некоторого уровня. То, что я смоделировал приложение, - это проблема SQLitePlugin. Когда открытая база данных говорит, что db.cordova не определяет

Как установить базу данных - скопируйте базу данных из папки db в местоположение установки Android. Это работало нормально.

Это моя база данных:

    var DB              = new Object();
DB.isDBSupported    = false;
DB.isDBCreated      = false;
DB.vocabDB          = null;
DB.tables           = ['userResponses', 'wordGroups', 'words', 'wordMapping', 'checkExists', 'patch_version']
DB.createdTables    = 0;
DB.setupCallback    = null;
DB.curQP            = null;
DB.accountStatus    = false;
DB.sfx              = true;
DB.showWarnings     = true;
DB.firstLaunch      = false;

DB.initDB = function(callback) {
    this.setupCallback = callback || function(){/*console.log("null function called")*/};
    this.openDB();
    var db = this;
    if(!isPhoneGap()) {
        _.delay(this.checkDB.bind(this), 500);
    }
}

DB.checkDB = function() {
    var db = this;
    this.vocabDB.transaction(
        function (t) {
            t.executeSql('DROP TABLE checkExists', [], db.setupDBResultHandler.bind(db), db.setupDBErrorHandler.bind(db, ">>delete exists"))
        }
    )
}

DB.openDB = function() {

    try {
        if (!window.openDatabase) {
            alert('Cannot open database!');
        } else {
            var shortName = 'sns2';
            var version = '1.0';
            var displayName = 'sns2';
            var maxSize = (isAndroid()) ? 5242880 : 1000000;

            if(!isPhoneGap()) {
                this.vocabDB = window.openDatabase(shortName, version, displayName, maxSize, this.DBCreated);
            } else if(isAndroid()) {
                utils.log("ANDROID DATABASE .. ");
                this.vocabDB = window.sqlitePlugin.openDatabase(shortName, version, displayName, maxSize, this.DBCreated);
            } else if(isIOS()) {
                utils.log("iOS DATABASE .. ");
                this.vocabDB = window.sqlitePlugin.openDatabase(shortName, version, displayName, maxSize, this.DBCreated);
            }
            this.DBSupported = true;
            if(isPhoneGap()) {
                this.setupCallback();
            }

        }
    } catch(e) {
        alert("Unable to open db." + e.message);
        return;
    }
}

Service.js

function getGroupCategory(handler) {
    console.log("selecting wordGroups");
    DB.vocabDB
    .transaction(function(t) {
                 t
                 .executeSql('SELECT * FROM categories', [], function(transaction, resultSet) {
                             handler(transaction, resultSet);
                             }, DB.transactionErrorHandler
                             .bind(DB, "Error while selecting wordGroups"));
                 })
}

Когда я вызвал этот метод, я получил это сообщение об ошибке could not prepare statement(1 no such table) error code 5 table avaibale

Пожалуйста, любое предложение или идею.

4b9b3361

Ответ 1

Я предлагаю начать чистку с 5.1.1. Таким образом, вы можете предотвратить проблемы, которые могут быть легко вызваны обновлением всего этого, и заставит вас искать корень проблем.

Это может показаться чем-то большим, но, скорее всего, это будет меньше хлопот, чем обновление, по крайней мере, это то, что мой личный опыт научил меня PhoneGap.