访问 PhoneGap 中的 WebSQL 数据库对象
Accessing WebSQL Database object in PhoneGap
我正在尝试使用 PhoneGap Developer App 访问 WebSQL 数据库结果,但我似乎无法正确访问该对象。这是一段代码示例:
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM ' + table, [],
function (transaction, resultSet) {
console.log(resultSet.rows);
}, function (transaction, error) {
console.log(error);
});
});
在通过 PhoneGap CLI 测试 PhoneGap 应用程序时,此块在 Chrome 中工作得很好。它 returns 控制台中的对象,CLI 显示 [object SQLResultSetRowList]。然后我可以通过调用访问特定行:
console.log(resultSet.rows.item(0));
这在桌面 CLI 和开发人员应用程序中都可以正常工作。不过,我想做的是使用 jQuery $.each:
遍历结果
$.each(resultSet.rows, function (k,v) {
console.log(JSON.stringify(v));
});
这是我遇到问题的地方。在桌面 Chrome 中并使用 CLI,每一行都作为键 => 值对的 JSON 字符串正确打印到控制台。但是,当我尝试在我的测试设备上使用 PhoneGap Developer App 运行 完全相同的代码时,控制台只会打印以下内容:
“100”是结果集的"length"键,输出为空(对应的键是"item")。
遍历 resultSet 对象的正确方法是什么?作为参考,我在 iOS 11 上使用 iPhone X 作为我的测试设备。
我最终通过使用结果集数据从头开始构建一个对象解决了这个问题:
function getIterableObjectFromResult(resultSet) {
for (var i = 0, data = {}; i < resultSet.rows.length; i++) {
data[i] = resultSet.rows.item(i);
}
return data;
}
然后可以在 PhoneGap Developer 应用程序中正确迭代生成的输出。
我正在尝试使用 PhoneGap Developer App 访问 WebSQL 数据库结果,但我似乎无法正确访问该对象。这是一段代码示例:
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM ' + table, [],
function (transaction, resultSet) {
console.log(resultSet.rows);
}, function (transaction, error) {
console.log(error);
});
});
在通过 PhoneGap CLI 测试 PhoneGap 应用程序时,此块在 Chrome 中工作得很好。它 returns 控制台中的对象,CLI 显示 [object SQLResultSetRowList]。然后我可以通过调用访问特定行:
console.log(resultSet.rows.item(0));
这在桌面 CLI 和开发人员应用程序中都可以正常工作。不过,我想做的是使用 jQuery $.each:
遍历结果$.each(resultSet.rows, function (k,v) {
console.log(JSON.stringify(v));
});
这是我遇到问题的地方。在桌面 Chrome 中并使用 CLI,每一行都作为键 => 值对的 JSON 字符串正确打印到控制台。但是,当我尝试在我的测试设备上使用 PhoneGap Developer App 运行 完全相同的代码时,控制台只会打印以下内容: “100”是结果集的"length"键,输出为空(对应的键是"item")。
遍历 resultSet 对象的正确方法是什么?作为参考,我在 iOS 11 上使用 iPhone X 作为我的测试设备。
我最终通过使用结果集数据从头开始构建一个对象解决了这个问题:
function getIterableObjectFromResult(resultSet) {
for (var i = 0, data = {}; i < resultSet.rows.length; i++) {
data[i] = resultSet.rows.item(i);
}
return data;
}
然后可以在 PhoneGap Developer 应用程序中正确迭代生成的输出。