【发布时间】:2011-07-07 09:58:24
【问题描述】:
我正在编写一个演示应用程序,看看是否可以在原生 android 和 Web 视图之间共享数据库。为此,我在我的活动中添加了一个 webview 和一个按钮。单击按钮后,我在 /data/data/com.demo/databases/testdb 中创建了一个数据库。我可以在 sqlite3 提示符下看到这个数据库。然后我写了一个html页面,在head部分有以下脚本标签
<script type="text/javascript">
if (window.openDatabase){
db = window.openDatabase("testdb", "1", "test database", 1024*1024);
alert("Database " + db);
if(db){
db.transaction(function(tx)
{
tx.executeSql('SELECT * FROM KeyValues',
[],
function (tx, rs) { displayMyResult(rs); },
function (tx, err) { displayMyError(err); } );
});
}
}else{
alert("Database is not supported");
}
function displayMyResult(rs){
alert("In display method");
for(var i=0; i < rs.rows.length; i++) {
r = rs.rows.item(i);
alert('id = ' + r['id'] + ', Key: ' + r['key_name'] + ', Value: ' + r['key_value']);
}
}
function displayMyError(err){
alert(err.message);
}
</script>
问题是我总是将数据库对象 db 设为空。可能这甚至是不可能的。还是我错过了什么。
感谢任何帮助。
编辑:底线:是否可以在 webview 中访问由原生 android API 创建的数据库?
【问题讨论】:
标签: android