0
私が見つけた唯一の方法は、ブラウザとデバイス用に異なるアダプタを使用するPouchDBです。しかし、この方法は私には合いません。ブラウザでCordova SQLiteアプリケーションを開発してテストするには?
私が見つけた唯一の方法は、ブラウザとデバイス用に異なるアダプタを使用するPouchDBです。しかし、この方法は私には合いません。ブラウザでCordova SQLiteアプリケーションを開発してテストするには?
私は別の方法を使用してこれを見つけましたCordova-sqlite-storage ブラウザとデバイス用に異なるデータベースオブジェクトを使用してください。
マイコード:
var runiOS = false;
var DB;
// Check browser or device
var onDeviceReady = new Promise(function(resolve, reject) {
if (document.URL.match(/^https?:/i)) {
console.log("Running in a browser...");
resolve();
} else {
console.log("Running in an app...");
runiOS = true;
document.addEventListener("deviceready", resolve, false);
}
});
// Run application
onDeviceReady.then(function() {
// Init WebSQL on browser or SQLite on device
if (runiOS) {
DB = window.sqlitePlugin.openDatabase({ name: 'my.db', location: 'default' }, function (db) {}, function (error) { console.log('Open database ERROR: ' + JSON.stringify(error)); });
console.log('DB: SQLite');
}
else {
DB = window.openDatabase('my', "0.1", "My list", 200000);
console.log('DB: WebSQL');
}
// ...
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)');
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]);
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]);
}, function(error) {
console.log('Transaction ERROR: ' + error.message);
}, function() {
console.log('Populated database OK');
});
db.transaction(function(tx) {
tx.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function(tx, rs) {
console.log('Record count (expected to be 2): ' + rs.rows.item(0).mycount);
}, function(tx, error) {
console.log('SELECT error: ' + error.message);
});
});
});
は、このコードがエラーなしで実行されてもよろしいです? – NaveenDA
これは初期化の例に過ぎません。もちろん、このコードは実行できません。私は答えを編集します。 –