我尝试使用从Appcelerator平台下载的模块SQLite数据库加密模块,该模块仅适用于专业版。
我将此添加到我的模型中
try {
require('appcelerator.encrypteddatabase');
var dbType = "enc.db";
} catch(e) {
var dbType = "sql";
}
并在适配器
adapter : {
type : dbType,
collection_name : "somename",
idAttribute : "someid",
migration : "20161105200100"
}
当我运行项目时,我收到此错误,因为适配器没有 enc.db 类型。
使用此模块时有任何类似问题的人?
编辑:
Titanium SDK版本:5.5.1.GA 模块版本:1.3.3
测试: iphone 5s,版本10.2.1 模拟器iphone 7 plus,版本10.1
答案 0 :(得分:0)
要使用我使用的平台加密模块:
在alloy.js
// Use encrypteddatabase if the module is included, else use sql.
try {
require('appcelerator.encrypteddatabase');
Alloy.Globals.dbEncrypted = 'enc.db';
} catch (e) {
console.error('appcelerator.encrypteddatabase module is not available', e);
}
Alloy.Globals.dbType = 'sql';
在models/myModel.js
var dbType = Alloy.Globals.dbEncrypted || Alloy.Globals.dbType || 'sql';
...
config: {
columns: {
id: 'TEXT PRIMARY KEY',
firstName: 'TEXT',
lastName: 'TEXT'
},
adapter: {
type: dbType,
collection_name: 'myModel',
idAttribute: 'id',
db_name: 'myModel.' + dbType
}
}
在我的情况下,db_name
专门针对此模型生成(因为我有加密和非加密数据库的组合,但您也可以使用类似db_name: 'myModel'
Ti SDK版本5.2.2.GA
和模块版本1.1.4
我的一切都很好。