0
我正在编写一个演示应用程序,以查看是否可以在原生android和web视图之间共享数据库。为此,我为我的活动添加了一个webview和一个按钮。点击按钮,我在/data/data/com.demo/databases/testdb中创建一个数据库。我可以在sqlite3提示符下看到这个数据库。然后我写了有以下脚本标签在头部分在android原生应用程序和html5之间共享数据库
<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>
问题是我一直都想与数据库对象数据库为空HTML页面。可能这是不可能的。或者我错过了什么。
任何帮助表示赞赏。
编辑:底线:是否有可能访问由webview中的原生android API创建的数据库?
这是正确的做法?我很好奇自己。 –
我可以在/data/data/com.demo/databases文件夹中看到数据库testdb。但是从html页面 db = window.openDatabase(“testdb”,“1”,“test Database”,1024 * 1024);总是返回null – prashant