我正在使用使用设备日历的 Phonegap / Cordova 为 Android 构建应用程序。我编写了一个插件(“Calify”),可以将事件添加到设备日历中,效果很好。但是,我正在尝试将插件返回的设备日历事件 ID 添加到 Web-SQL 数据库中的记录中,但这给了我以下错误(在 Android 模拟器中运行):
file:///android_asset/www/cordova-2.2.0.js: Line 1090 : processMessage failed: Message: S01 Calify507282772 s[{"id":191,"calid":615}]
file:///android_asset/www/cordova-2.2.0.js: Line 1091 : processMessage failed: Error: Error: INVALID_STATE_ERR: DOM Exception 11
这是我的代码的样子。
window.addEvent(function(insertions){
data = JSON.parse(insertions);
console.log(insertions);
event_id = data[0]['calid'];
id = data[0]['id'];
tx.executeSql('UPDATE AFSPRAKEN SET eventID=? WHERE id=' + id, [event_id]);
}, [calendarID, [{start: start.getTime(), end: end.getTime(), title: event_title}]]);
“插入”日志给了我想要的结果,以及单独记录“event_id”和“id”。它似乎与数据库插入有关(这也是异步的)。请注意,此函数在数据库事务中运行,这是必需的,因为我也在此日历事件函数之外运行一些其他查询。注释掉插入查询使代码运行没有错误。
DOM Exception 11 似乎意味着该对象(我猜是“插入”?)不再可访问,也许与此有关。