我正在尝试编写用于将内容插入 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 显示为数据库对象。我究竟做错了什么?