2012-10-27 3 views
4

Phonegap contacts.save에 문제가 있습니다. 연락처를 만들 때 iOS와 Android에서 완벽하게 작동하지만 연락처를 업데이트하려고하면 phoneNumbers, 이메일, URL, IM, 주소로 중복 파일이 생성됩니다. Phonegap 2.1 및 Xcode 4.5.1을 사용하고 있습니다.Phonegap contact.save 중복 전화 번호 연락처 업데이트시 번호

누군가이 문제를 해결할 수 있습니까? 시간 내 주셔서 감사합니다. 감사. 이력서

:

  • navigator.contacts.create(); 올바르게 작동합니다.
  • 연락처를 업데이트하려고 시도했지만 올바르게 저장했지만 전화 번호를 추가하면 업데이트됩니다.

내 코드는 다음과 같습니다 코드가 정확히 작동하고

var options = new ContactFindOptions(); 
options.filter = 20; //just it's an example. Looking for id 20. 
var fields = ['id']; 
var contact; 
navigator.contacts.find(fields,function(contacts){ 
    if (contacts.length==0) 
     contact = navigator.contacts.create(); 
    else 
     contact = contacts[0]; 

    var tContactName = new ContactName(); 
    tContactName.givenName = 'Name'; 
    tContactName.LastName = 'LastName'; 
    contact.name = tContactName;  

    var tPhoneNumbers[2]; 
    tPhoneNumbers[0] = new ContactField('work', '123456789012',true); 
    tPhoneNumbers[1] = new ContactField('home', '120987654321', false); 
    contact.phoneNumbers = tPhoneNumbers; 

    contact.save(function(contact) { 
     navigator.notification.alert('Saved sucessfully!!!',function(){},'Title'); 
    }, function(contactError) { 
     navigator.notification.alert('Error contact save: '+contactError.code,function(){},'Title'); 
    } 
}, function(contactError) { 
     navigator.notification.alert('Error contact find: '+contactError.code,function(){},'Title'); 
}, options); 

답변

1

방법 W3C 연락 사양에 따라해야한다. 그렇다고해서 의미가있는 것은 아닙니다.

어쨌든 새로운 전화 번호 배열을 만들고 그 전화 번호를 contact.phoneNumbers 속성과 같게 설정하면 연락처에 전화 번호가 추가됩니다. 기존 전화 번호를 편집/교체하려면 "필드"의 일부로 전화 번호를 요청해야합니다. 그런 다음 기존 전화 번호를 반복하여 적절하게 편집해야합니다.

그래, 반 직관적이지만 그것은 당신을위한 W3C API입니다.

+0

사례를 게시 할 수 있습니까? 감사 – Hardy

1

new ContactField을 사용하여 전화 번호에 대해 다시 새 값을 만드는 대신 이미 생성 된 전화 번호 연락처 필드에 값을 할당해야합니다.

그래서 여기에 다음 대신 갱신에 contact.phoneNumbers = tPhoneNumbers;를 사용하는 직접이 방법을 저장 호출 그거야,

contact.tphoneNumbers[0].value = 123456789012 
contact.tphoneNumbers[1].value = 120987654321 

전화 번호를 업데이트 할 수있는 예이다.