Так что я создаю приложение, которое берет контактную информацию из адресной книги и сохраняет ее в титановой модели, которая будет использоваться позже в путешествии пользователя.Магазин Адрес контактная книга в sqlite titanium
Вся остальная информация хранится и возвращается правильно, однако изображение контакта всегда по каким-либо причинам возвращается в исходное состояние.
код для хранения информации адресной книги заключается в следующем
if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_AUTHORIZED){
var people = Titanium.Contacts.getAllPeople();
var totalContacts = people.length;
var addressbook = [];
Alloy.Collections.contactsModel.numberOfContacts();
Ti.API.info(numberOfContacts);
if(totalContacts > 0){
var phoneContacts = [];
for (var index = 0; index < totalContacts; index++){
var person = people[index];
phoneContacts.push({
name:person.fullName,
phoneNumber:person.phone,
profileImage:person.image,
contactID:person.identifier
});
}
Alloy.Collections.contactsModel.reset(phoneContacts);
Alloy.Collections.contactsModel.each(function(_m) {
_m.save();
});
}
} else if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_UNKNOWN){
Ti.Contacts.requestAuthorization(function(e){
//Authorization is unknown so requesting for authorization
if (e.success) {
} else {
}
});
} else {
}
}
Определение модели выглядит следующим образом
exports.definition = {
config: {
columns: {
"friendID": "INTEGER PRIMARY KEY AUTOINCREMENT",
"contactID": "string",
"name": "string",
"phoneNumber": "string",
"emailAddress": "string",
"profileImage": "blob"
},
adapter: {
type: "sql",
collection_name: "contactsModel",
idAttribute:"friendID"
}
},
extendModel: function(Model) {
_.extend(Model.prototype, {
// extended functions and properties go here
});
return Model;
},
extendCollection: function(Collection) {
_.extend(Collection.prototype, {
collection.trigger('sync');
},
}
}
*/
});
return Collection;
}
};
Изображение работает нормально при сборе его из адресной книги и положить его в виде списка. Однако, когда он сохраняется, а затем я пытаюсь восстановить его и помещать в список, где возникает проблема.
Спасибо, ребята.
Я только что решил, что это связано с тем, что изображение не может быть сохранено в SQLite DB. Способ подойти к нему - либо превратить его в строку base64, либо сохранить его в пространстве, а затем получить путь к изображению и сохранить его. Как только я разработал код, я опубликую его, чтобы каждый мог увидеть мой подход и как я его решил. –