WebSQL应用程序中的数据库物理位置在哪里?

时间:2016-12-17 11:17:36

标签: android html5 sqlite cordova

我创建了一个简单的APP来在数据库中添加一些数据。当我在Linux Chrome浏览器上进行测试时,我访问数据库本身没有问题(路径.config/google-chrome/Default/databases/http_localhost_8383/),但现在我正在测试一个真正的Android设备,我找不到APP正在生成的文件

请注意,我在root设备上使用root浏览器。

2 个答案:

答案 0 :(得分:1)

你是对的,db应该位于'/ data / data /'+ this.packageName +'/ databases /'+ dbName你确定它正在被创建吗?引用brodybits“当应用程序调用sqlitePlugin.openDatabase()时,插件将创建数据库文件(如果它不存在),或读取数据库文件(如果存在)。对于每个平台,数据库文件应该是相同的路径(相对于您的应用),无论您是在模拟器上还是在真实设备上运行它。“

我觉得您使用的是浏览器数据库插件,而不是基于数据库的位置。

Chrome将其数据库保存在〜/ .config / google-chrome / Default / databases中,但它与cordova的sqlite插件cordova-sqlite-storage不同。

答案 1 :(得分:0)

也许这会有所帮助:

    if (android.os.Build.VERSION.SDK_INT >= 17) {
        DB_PATH = xcontext.getApplicationInfo().dataDir + "/databases/";
    } else {
        DB_PATH = xcontext.getFilesDir().getPath() + "data/" +
                xcontext.getPackageName() + "/databases/";
    }

或:

    if (android.os.Build.VERSION.SDK_INT >= 17) {
        DB_PATH = xcontext.getApplicationInfo().dataDir + "/databases/";
    } else {
        DB_PATH = "/data/data/" + xcontext.getPackageName() + "/databases/";
    }