2016-04-04 5 views
0

Monaca IDEを使用してハイブリッドアプリケーションを開発していますが、私が使用しているデータベースはSqliteで作成されており、プレビューでうまくいきます。 DBスキームとそれは素晴らしいも働いたが、私は。apkを作成しようとすると、アプリケーションが動作しますが、dbが決して作成されていない、私は私が認識していない何か他の皆さんは、ここで何が起こっているのかも知っています!Sqliteはハイブリッドアプリケーションでは動作しません

注:これは動作しないか、私はFirefoxの

でモナカプレビューを開いた場合、これは私のデシベルコードです:あなたはコールバック地獄を作成する必要がある場合、私はわからない

$(document).ready(function(){ 
    onDeviceReady(); 
}); 


function onDeviceReady() { 
db = window.openDatabase('antel', '1.0', 'primera', 2 * 1024 * 1024); 
db.transaction(crearBase); 
}; 


function crearBase(tx) { 
tx.executeSql('Create table if not exists PARADA (nombre TEXT PRIMARY KEY)', [], function (tx) { 
    tx.executeSql('Create table if not exists REGISTRO (id INTEGER PRIMARY KEY autoincrement, nomParada TEXT REFERENCES PARADA (nombre), tipo TEXT ,km TEXT,fecha TEXT,hora TEXT)', [], function (tx) { 
     tx.executeSql('Create table if not exists EMAIL (id INTEGER PRIMARY KEY autoincrement,nombre TEXT)', [], function (tx) { 
      tx.executeSql('Select nombre FROM PARADA',[],meFijoSiEsVacia);}); 
    }); 
}); 

} 

答えて

0

灯油は私が持っていたので、私が持っていた問題は、私のjQueryの輸入だったそれらのステートメントを作成する方法についての権利であるものの:

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script> 

そして、そのように(私はなぜ知らない)それはで動作しますプレビューではなく、デバイスに、私はそれを変更

<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> 

は素晴らしい!

を働い

灯油ありがとう、助けようとしているのはあなただけです!

1

このような。あなたは、すべての声明がうまくいっているし、エラー処理がないということに頼っていると考えるべきです。

function onDeviceReady() { 
    var db = window.openDatabase('antel', '1.0', 'primera', 2 * 1024 * 1024); 
    db.transaction(crearBase, errorCB, successCB); 
}; 


function crearBase(tx) { 
    tx.executeSql('Create table if not exists PARADA (nombre TEXT PRIMARY KEY)'); 
    tx.executeSql('Create table if not exists REGISTRO (id INTEGER PRIMARY KEY autoincrement, nomParada TEXT REFERENCES PARADA (nombre), tipo TEXT ,km TEXT,fecha TEXT,hora TEXT)'); 
    tx.executeSql('Create table if not exists EMAIL (id INTEGER PRIMARY KEY autoincrement,nombre TEXT)'); 
    tx.executeSql('Select nombre FROM PARADA'); 
} 

function errorCB(err) { 
    console.log("Error occured while executing SQL: "+err.code); 
} 

function successCB() { 
    console.log("all fine"); 
} 

があるかもしれません:彼らは使用しているどのコルドバSQLiteのプラグインのでわからないが、私はtheir documentation regarding SQLite

で見ていた彼らは、SQLトランザクションを開いて上のすべての文を実行している - 私はモナカにはありませんよこれらの成功関数をすべて入れ子にしているのですが、エラーコールバックも処理する必要があります。ちょうど "プレビューが働いた、デバイスではない"というだけでは不十分です。ブラウザ環境はもちろん、Cordovaプラグインとは異なります。

関連する問題