Android从HTML5访问嵌入式sql lite数据库
在这里碰到一堵主要的砖墙。我有一个数据数据库,需要将其打包到SQLLite数据库中。我还需要能够从javascript的webview中查询这个数据库。当试图用javascript查询数据库时,SQLLite返回一个错误代码1,并显示一条消息“没有这样的表”。有什么想法吗 下面是js代码Android从HTML5访问嵌入式sql lite数据库,android,html,Android,Html,在这里碰到一堵主要的砖墙。我有一个数据数据库,需要将其打包到SQLLite数据库中。我还需要能够从javascript的webview中查询这个数据库。当试图用javascript查询数据库时,SQLLite返回一个错误代码1,并显示一条消息“没有这样的表”。有什么想法吗 下面是js代码 var database = window.openDatabase("testdb5", "", "main total", 1024 * 1024); if (database)
var database = window.openDatabase("testdb5", "", "main total", 1024 * 1024);
if (database)
document.write('got');
database.transaction(function (tx) {
tx.executeSql("SELECT * FROM testtable", [], function (tx, result) {
for (var i = 0, item = null; i < result.rows.length; i++) {
item = result.rows.item(i);
document.write(item.name);
}
});
});
真糟糕,没有这方面的文档!非常感谢您的帮助 这是没有希望的。为了子孙后代,我决定简单地创建一个与SQLLite数据库本机交互的and调用方法
这个解决方案的唯一问题是,我的代码不会具有可移植性。我将不得不想出一些黑客解决方案,把它放在IOS上。。。这就是生活。这是没有希望的。为了子孙后代,我决定简单地创建一个与SQLLite数据库本机交互的and调用方法
这个解决方案的唯一问题是,我的代码不会具有可移植性。我将不得不想出一些黑客解决方案,把它放在IOS上。。。这就是生活。您是否将数据库从资产(或资源)文件夹复制到应用程序的数据库文件夹?你能用api从Java内部访问它吗?我想是的。我复制了这个教程。看到它有任何问题吗?确保DataBaseHelper类中的copyDataBase方法在某个时候被调用。:)您可以使用adb外壳检查文件是否已实际复制。阅读注释后,显然这是建议解决方案的常见问题。您是否将数据库从资产(或res)文件夹复制到应用程序的数据库文件夹?你能用api从Java内部访问它吗?我想是的。我复制了这个教程。看到它有任何问题吗?确保DataBaseHelper类中的copyDataBase方法在某个时候被调用。:)您可以使用adb shell检查文件是否已实际复制。阅读注释后,显然这是建议解决方案的常见问题。
WebSettings settings = myWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
//String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
String databasePath ="/data/data/com.example.helloandroid/databases/";
settings.setDatabasePath(databasePath);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize,
long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(estimatedSize * 2);
}
});