javascript - Phonegap/Cordova WebSql 事务未触发

标签 javascript ios cordova web-sql

我正在使用cordova的最新版本(3.5),我想使用WebSQL保存一些数据,但是当我调用database.transaction(query,success,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 上执行了代码,似乎可以工作。

最佳答案

环境: 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() 进行调试。

关于javascript - Phonegap/Cordova WebSql 事务未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673458/

相关文章:

javascript - 当内容通过 scrollBy 或 scrollTo 滚动时,Slimscroll 滚动条不移动

javascript - Jest 测试一个没有返回值的函数

javascript - 我有输入文本框,应采用 $ 和 £ 货币符号,并在用户键入任何其他特殊字符时发出警告

objective-c - UIView 改变方向并出现丑陋的角落

android - Ionic Gradle多个dex文件定义了Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat $ AccessibilityServiceInfoVersionImpl

javascript - jQuery 在悬停/鼠标离开时淡入和淡出另一个 div 而不闪烁

ios - 使用 Retina 显示屏将 Tile 转换为 CGPoint

ios - uitableViewCell 内容行为异常

javascript - 如何监听两个加载事件?

javascript - Cordova 与 Create-react-app