我建議包括返回包含您的數據JSON
字符串的文件。
在應用程序的初始加載時,檢查數據庫是否已被填充,如果沒有運行函數來獲取對象,然後將其加載到數據庫中。
您可以使用簡單的$.get()
方法並利用webSQL
的HTML5
規範。
下面是一個例子:
我創建一個名爲db對象開始 -
var db;
dbHandler = {
initialize: function() {
db = window.openDatabase('appdb', '1.0', 'AppDB', 5000000);
db.transaction(dbHandler.createDB, dbHandler.errorCB, dbHandler.checkDB);
},
createDB: function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS _TABLE_NAME_ (itemID unique, someField, someOtherField)');
},
checkDB: function(tx) {
tx.executeSql('SELECT * FROM _TABLE_NAME_', [], dbHandler.checkDBcallBack, dbHandler.errorCB);
},
checkDBcallBack: function(tx, results) {
if(results.rows.length > 0) {
return true;
}
else {
$.get('local/file/with/json/object.json', function(data) {
dbHandler.populateDB(JSON.parse(data));
});
}
},
populateDB: function(records) {
var len = records;
db.transaction(function(tx) {
for(var i =0; i < len; i++) {
tx.executeSql('INSERT INTO _TABLE_NAME_ (someField, someOtherField) VALUES (?,?)', [], dbHandler.successCB, dbHandler.errorCB);
}
},
dbHandler.errorCB,
dbHandler.successCB);
},
errorCB: function(tx, err) {
//console.log(err);
},
successCB: function(msg) {
if(msg) {
//navigator.notification.alert(msg);
}
}
};
一旦deviceready
事件觸發呼叫
dbHandler.initialize();
這可能不工作了的盒子,但應該是你正在尋找什麼的好開始。
你能告訴我。什麼幫助你需要。 – Aravin
HI Aravinth,我已經在sqlite中創建了一個數據庫。我想在應用程序中使用相同的數據庫。由於數據庫有1000行,因此我不想隨時添加行。 – pankaj
檢查這一個http://k4ml.github.io/android-phonegap-with-existing-sqlite-database.html這也是http://gauravstomar.blogspot.in/2011/08/prepopulate-sqlite-in- phonegap.html – Aravin