Не удалось найти модуль сплава/синхронизации/enc.db при использовании модуля шифрования базы данных SQLite.

Я попытался использовать модуль SQLite Database Encryption Module, который я скачал с платформы Appcelerator, который доступен только для профессионального уровня.

Я добавил это в свои модели

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


person user3051673    schedule 02.02.2017    source источник


Ответы (1)


Чтобы использовать зашифрованный модуль платформы, я использую:

In 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';

In 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

У меня все работает нормально.

person Cesar Cavazos    schedule 08.02.2017