Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android从HTML5访问嵌入式sql lite数据库_Android_Html - Fatal编程技术网

Android从HTML5访问嵌入式sql lite数据库

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)

在这里碰到一堵主要的砖墙。我有一个数据数据库,需要将其打包到SQLLite数据库中。我还需要能够从javascript的webview中查询这个数据库。当试图用javascript查询数据库时,SQLLite返回一个错误代码1,并显示一条消息“没有这样的表”。有什么想法吗

下面是js代码

    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);
            }
    });