我遇到了一些奇怪的问题,因为它只出现在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
错误。
任何人都可以帮助解决这个问题吗?
答案 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);
}
希望它有所帮助。