我有一个使用PhoneGap编写的HTML5移动应用程序。 应用程序的某些部分使用SQL数据库,像这样:
db = window.openDatabase("my_app_database", "1.0", "Description of my database about 50 chars long", 1000000);
$.get('db/app_data.dat',function(result){
var data = $.parseJSON(result);
if (!data) {
alert('Data error');
return false;
}
db.transaction(function(tx){
tx.executeSql('DROP TABLE IF EXISTS table_a');
tx.executeSql('DROP TABLE IF EXISTS table_b');
tx.executeSql('CREATE TABLE table_a (id INTEGER,name,html)');
tx.executeSql('CREATE TABLE table_b (id_a INTEGER, id_b INTEGER)');
});
db.transaction(function(tx){
$.each(data.item, function(i, v){
tx.executeSql('INSERT INTO table_a(id, name,html) VALUES (?,?,?)',[v.id, v.name, v.html]);
});
});
});
在Android上,这个功能完美地运作,没有任何问题。但是在iPhone(4.0, 4.2)上却完全不起作用。你有什么想法,为什么这种在PhoneGap上使用SQL数据库的标准操作会在iPhone上造成任何麻烦?是否需要注意一些限制?例如,数据库名称限制、数据库大小限制或查询限制?
编辑:不知道是否相关,但我目前在这个应用程序中使用的是PhoneGap v.0.9.5.1。
SQLiteDatabase.OPEN_READWRITE
这样允许你进行修改的标志吗?我的意思是,你是否拥有写入权限,并确保可以连接到数据库? - Nikola Despotoski