哪个是使用phonegap编写App Javascript的最佳方法?

时间:2014-02-28 13:23:07

标签: javascript cordova

我正在以这种方式使用它,我仍然会收到一个错误,我将在下面粘贴。 我在我的Motorola Razr上使用Android 4.1.2进行测试。 差不多这就是它。 噢,另一点,如果我尝试在App.onDeviceReady中使用'this.buscarServidores',则返回错误,说'this'上没有这样的东西。 救命! ;(

var App = {
initialize: function() {
    App.bindEvents();
},
bindEvents: function() {
    document.addEventListener('deviceready', App.onDeviceReady(), false);
},
onDeviceReady: function() {
    dB = App.getDB();
    dB.transaction(App.populateDB, App.errorDB, App.buscarServidores);
},
getDB: function() {
    if (typeof this.dB === 'undefined') {
        this.dB = window.openDatabase("mysqlnavigator", "1.0", "MySQL Navigator", 10000000);
    }
    return App.dB;
},
errorDB: function(err) {
    alert("Erro (" + err.code + "): BANCO DE DADOS");
    console.log(err.message);
},
populateDB: function(tx) {
    tx.executeSql("CREATE TABLE IF NOT EXISTS servidores (id INTEGER PRIMARY KEY AUTOINCREMENT, host TEXT, porta TEXT, usuario TEXT, senha TEXT, ultimologin TEXT)");
    tx.executeSql("INSERT INTO servidores (host, porta, usuario, senha) VALUES ('jorgeferrari.com.br', '3306', 'jorgefer_and', '321654987');");
    console.log("Databases Populated");
},
buscarServidores: function() {
    db = App.getDB();
    db.transaction(App.txBuscaServidores, App.errorDB);
},
txBuscarServidores: function(tx) {
    console.log('txBuscarServidores');
    tx.executeSql("SELECT * FROM servidores", [], sBuscaServidores, errorDB);
},
sBuscaServidores: function(tx, resultados) {
    console.log('sBuscaServidores');
    if (resultados.rows.length > 0) {
        var txResultados = '';
        for (i = 0; i < resultados.rows.length; i++) {
            txResultados += resultados.rows.item(i).host + ":" + resultados.rows.item(i).porta + "<br/>";
        }
        $('.resultados').html(txResultados);
    } else {
        $('.resultados').html("Nenhum resultado encontrado");
    }
},
dB: undefined
};

我得到的错误就是这个:

02-28 10:18:44.638 10128 10128 D CordovaLog: file:///android_asset/www/js/app.js: Line 25 : Databases Populated
02-28 10:18:44.708 10128 10128 D CordovaLog: file:///android_asset/www/js/app.js: Line 29 : Uncaught Error: TYPE_MISMATCH_ERR: DOM Exception 17

第29行将是:

db.transaction(App.txBuscaServidores, App.errorDB);

EDIT 事件,如果我之前使用此而不是在对象内的应用程序,我得到此错误     02-28 10:27:51.224 10289 10289 D Cordova日志:file:///android_asset/www/js/app.js:第29行:未捕获的错误:TYPE_MISMATCH_ERR:DOM异常17

1 个答案:

答案 0 :(得分:0)

这是错误的错误......

   db.transaction(App.txBuscaServidores, App.errorDB);

应该是

    db.transaction(App.txBuscarServidores, App.errorDB);