주소록에서 연락처 정보를 가져 와서 나중에 사용자 여행에서 사용할 수 있도록 티타늄 모델에 저장하는 응용 프로그램을 개발 중입니다.sqlite 티타늄에 주소록 연락처 저장
다른 모든 정보는 올바르게 저장되고 반환되지만 연락처의 이미지는 항상 공백으로 표시됩니다.
다음과 같이 주소록 정보를 저장하는 코드는
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 문자열로 바꾸거나 공간에 저장 한 다음 이미지 경로를 가져 와서 저장하는 것입니다. 일단 코드를 작성하면 모든 사람들이 내 접근 방식을 볼 수 있고 어떻게 해결했는지 알 수 있습니다. –