我使用了cordova的最新版本(3.5)并且我想使用WebSQL保存一些数据但是当我调用database.transaction(查询,成功,错误)时它什么也没做。我的sucess方法和error方法都有alert()来通知错误或成功,但没有一个触发。
这是我的代码:
function onDeviceReady(){
var db = window.openDatabase("Database", 1, "PhoneGap Demo");
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}
function errorCB(err) {
alert("Error processing SQL: "+err.code);
}
function successCB() {
alert("success!");
}
正如我所说,警报框没有显示。可能是什么问题呢? 更多 信息:我正在使用Cordova 3.5并在iPhone模拟器上进行测试。 我用我的笔记本电脑在chrome上执行了代码,似乎有效。
答案 0 :(得分:0)
环境:cordova 3.4
设备:仿真器(Nexus 7)
操作系统:Android KitKat 4.4
我刚刚检查了你的代码,并在第一行得到了“参数数量不足”的错误
var db = window.openDatabase("Database", 1, "PhoneGap Demo");
根据API文档,应该有四个参数,我将代码更改为
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 1000);
它有效。最后一个参数是数据库的初始大小(以字节为单位)。
希望上述解决方案也适用于iPhone。
我使用 console.log()调用以及alert()进行调试。