我们正在测试Cordova Sqlite plugin以确定它是否符合我们对特定应用的需求。到目前为止,我们的简单测试工作得很好。但是,我们坚持这一点。创建数据库时,文档说明:
注意:数据库文件是使用
.db
扩展名创建的。
事实上,在我们的测试中,数据库已创建,以后可以在没有任何扩展的情况下找到并读取。输出完全匹配我们的命名。例如,在这种情况下:
var _dbName = 'testDB';
var _db = window.sqlitePlugin.openDatabase({name: _dbName});
正如文档所示,生成的文件的名称恰好是testDB
,而不是testDB.db
。
我们的测试已在iOS模拟器上进行。我担心的是这种行为不可靠,并且会在其他平台/硬件上发生变化。我目前无法在Android上进行测试。
更多背景......
我关注的具体问题是,一个平台可能希望.db
记录在案,而另一个平台可能不会。它可能成为问题的原因是我们打算使用预先填充的Sqlite数据库(由应用程序移动到openDatabase
之前的适当存储位置)。因此,打包数据库的命名方案会决定这种情况。
对于未来的读者,请注意......(2014年8月4日)
这个插件的最新版本使这个问题没有实际意义。正如他们的发行说明中所述,Android不再添加.db
扩展名,这使得此插件的行为在不同平台上更加一致。从他们的发行说明开始,截至编辑之日:
现在为Android版本删除了自动“.db”数据库文件扩展名,以便与iOS和& WP(8)版本
答案 0 :(得分:0)
我在 android 中使用此插件。无法告诉您它是否添加了.db。但我可以向你保证,它在Android上工作得很好。 Android也使用了与您在问题中提到的完全相同的方式。
var _dbName = 'testDB';
var _db = window.sqlitePlugin.openDatabase({name: _dbName});
答案 1 :(得分:0)
因此,在查看SQLitePlugin.m时,open:方法有...
NSMutableDictionary *options = [command.arguments objectAtIndex:0];
NSString *dbname = [self getDBPath:[options objectForKey:@"name"]];
...这表明数据库名称是您传递给它的任何内容。我没有看到他们附加了一个' db'扩展插件中的任何位置。我不相信sqlite3_open()会增强名称,因此我非常确定您引用的文档不正确。