数据库没有填入HTC One A9

时间:2016-06-16 12:06:57

标签: android sqlite cordova cordova-plugins

我遇到了一些奇怪的问题,因为它只出现在HTC One A9中。 它有Marshmallow 6.0.1(可能是因为这个)。 在所有其他设备(将棒棒糖作为操作系统)中,应用程序按预期工作。 该应用程序是在Phonegap上开发的。 Sqlite插件:cordova-plugin-sqlite

一些代码段。

function OnDeviceReady (){

if(isOnline==true){
    try{
        app.initialize();
    }
    catch(exc){      
    }
}
else{
  var db = window.sqlitePlugin.openDatabase({ name: "abc.db", createFromLocation: 1 });
    db.transaction(function (tx) {});
  }
}

数据库位于www目录中。 无法理解错误是因为Marshmallow 6.0.1或因为sqlite插件。 在预填充数据库时,它总是会出现Invalid database handle错误。 任何人都可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您必须使用cordova-sqlite-ext插件来预先安装数据库。 之后写下面的

 var db = window.sqlitePlugin.openDatabase({ name: dbName, location:'default', createFromLocation: 1 });
  db.transaction(function (tx) {});

并在后续调用中使用以下内容 -

db = window.sqlitePlugin.openDatabase({ name: dbName, location : 'default' });


        db.transaction(function (tx) {

            //Make the search query
            var _strSearchQuery = "where prod_id = '" + id + "' ";

            // Call the function to get the data from the local database and bind
            nsProductGetMSDS.RetriveProductDetails(tx, _strSearchQuery);

        }, CommonError, DoNothing);


    }
    else{
        alert(noInternetMessage);
    }

希望它有所帮助。