将WebSQL实现到iOS 6+ / Android 4+本地应用程序中

时间:2014-03-13 00:52:32

标签: ios cordova web-sql

我正在构建一个我希望在设备上完全本地化的应用程序。我一直在寻找将数据存储在设备上的方法,似乎WebSQL在iOS6 +设备上是持久的。

我一直在查看有关WebSQL的文档,我对如何将其添加到项目中感到有点困惑。

在他们的文档中

function prepareDatabase(ready, error) {
    return openDatabase('documents', '1.0', 'Offline document storage', 5*1024*1024, function (db){
        db.changeVersion('', '1.0', function (t) {
            t.executeSql('CREATE TABLE docids (id, name)');
        }, error);
    });
}

function showDocCount(db, span) {
    db.readTransaction(function (t) {
        t.executeSql('SELECT COUNT(*) AS c FROM docids', [], function (t, r) {
            span.textContent = r.rows[0].c;
        }, function (t, e) {
            // couldn't read database
            span.textContent = '(unknown: ' + e.message + ')';
        });
    });
}

prepareDatabase(function(db) {
    // got database
    var span = document.getElementById('doc-count');
    showDocCount(db, span);
}, function (e) {
    // error getting database
    alert(e.message);
});

他们说'prepareDatabase'函数检查数据库是否已经存在,但是我没有看到该检查的位置,除非回调是 ONLY ,如果数据库没有存在,API部分似乎意味着。

此外,如果数据库大小增长大于创建时提供的估算值,会发生什么?

另一个问题是 HOW 持久性是数据库吗?用户在打开应用程序并看到所有数据都消失后会感到震惊吗?

一如既往,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

打开websql数据库错综复杂。模式是您永远不会在openDatabase上指定版本。但是,让他们打开任何内容,如果版本不是1.0,那么你changeVersion1.0