0

我正在尝试编写用于将内容插入 HTML5 数据库的 JSNI 方法,因为显然没有适用于最新版本的 GWT 插件。我有这个非常简单的代码,它在 GWT 之外完美运行:

public static native void database() /*-{
        var db;
        db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
        var msg;
        db.transaction(function (tx) {
          $wnd.alert("testing");
          tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
          tx.executeSql('INSERT INTO LOGS (id, log) VALUES (7, "foobar")');
          tx.executeSql('INSERT INTO LOGS (id, log) VALUES (8, "logmsg")');
          $wnd.alert("inserted");
        });
}-*/;

似乎 GWT 没有进入 db.transaction 位,因为“测试”消息从未出现,但我没有收到任何错误。

起初我以为是 $wnd 放置问题,甚至尝试过 $wnd.db.transaction,但没有任何效果。openDatabase 似乎正在工作,至少 db 显示为数据库对象。我究竟做错了什么?

4

1 回答 1

0

恐怕不是您期望的答案,但是作为 gwt-mobile-webkit 项目的一部分,GWT 中的 WebSQL 包装器可以长期使用:http ://code.google.com/p/gwt-mobile- webkit/(在他们的文档中称为“数据库 API”)

于 2011-11-18T15:58:39.473 回答