목차

Contacts

설명

제약사항

Android

Contacts
ContactAddress
ContactField
ContactName
ContactOrganization

iOS

Contacts
ContactAddress
ContactField
ContactName
ContactOrganization

DEPRECATED

환경 설정

Android

<plugin name="Contacts" value="org.apache.cordova.ContactManager" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

iOS

    <feature name="Contacts">
        <param name="ios-package" value="CDVContacts"/>
    </feature>

관련 함수

contacts.create

var contact = navigator.contacts.create(properties);
var myContact = navigator.contacts.create({"displayName": "Test User"});

contacts.find

navigator.contacts.find(contactFields, contactSuccess, contactError, contactFindOptions);
유형설명타입비고
contactFields검색하고자 하는 연락처 정보를 정의한다.DOMString[][필수]
contactSuccess연락처 데이터베이스 검색이 성공하였을 때 실행하는 함수 [필수]
contactError검색에 실패하였을 때 실행하는 함수 [선택]
contactFindOptions검색 조건을 정의한다. [선택]

파라미터

contactFields

["name", "phoneNumbers", "emails"]

contactSuccess

function(contacts) {
    // Do something
}

contactError

function(code) {
    // Do something
}
유형설명
ContactError.UNKNOWN_ERROR알 수 없는 오류
ContactError.INVALID_ARGUMENT_ERROR잘못된 파라미터 오류
ContactError.TIMEOUT_ERROR시간 초과 오류
ContactError.PENDING_OPERATION_ERROR명령 지연 오류
ContactError.IO_ERROR읽기나 쓰기 중 오류
ContactError.NOT_SUPPORTED_ERROR지원하지 않음
ContactError.PERMISSION_DENIED_ERROR권한 부여에 대한 오류

contactFindOptions

{ 
    filter: "",
    multiple: true,
};
유형설명타입비고
filter연락처 검색에 사용될 문자열(검색어)DOMString기본값 : ”“
mutiple다중 연락처에 대한 검색 허용 여부Boolean기본값 : false

Objects

Contact

function onSuccess(contact) {
    alert("Save Success");
};

function onError(contactError) {
    alert("Error = " + contactError.code);
};

// create a new contact object
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber";       //specify both to support all devices

// populate some fields
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;

// save to device
contact.save(onSuccess,onError);
속성
유형설명타입
id 연락처에 대한 고유한 Id이다. DOMString
displayName 사용자의 화면에 출력하는 연락처 이름이다. DOMString
name연락처에 저장된 이름 정보를 모두 포함하고 있다.ContactName
nickname 연락처에 저장된 별명이다. DOMString
phoneNumbers 전화번호를 배열 형태로 저장하고 있다. ContactField[]
emails 관련 연락처에 대한 이메일 정보의 배열이다.  ContactField[]
addresses 관련 연락처의 주소에 대한 배열이다. ContactAddresses[]
ims 관련 연락처에 대한 메신저 주소 정보의 배열이다. ContactField[]
organizations 소속 단체 정보에 대한 배열이다. ContactOrganization[]
birthday 관련 연락처에 대한 생일이다. Date
note 관련 연락처에 대한 메모이다. DOMString
photos 관련 연락처에 대한 사진이다. ContactField[]
categories 연락처에 대한 분류 카테고리의 배열이다. ContactField[]
urls 연락처에 대한 홈페이지 주소의 배열이다. ContactField[]
함수
함수설명비고
clone 호출한 Contact 객체를 복제하여 새로운 Contact 객체를 생성하고, 새로운 Contact 객체는 null이기 때문에 새로운 Contact 객체로 저장할 수 있도록 지원한다.
remove 연락처 데이터베이스에서 호출한 Contact 객체를 삭제하고 성공 했을 경우에는 Contact 객체를, 실패했을 경우에는 ContactError 객체를 전달받는다.
save 신규 Contact 객체 경우에는 디바이스 내, 연락처 데이터베이스에 등록하고, 존재하는 경우 연락처를 수정한다.

ContactName

* Contact 객체의 name 속성에 해당하는 관련 속성들의 객체.

속성
속성설명타입
formatted 해당 연락처의 전체이름. DOMString
familyName 전체 이름에서 ‘성’을 의미한다. DOMString
givenName 전체 이름에서 ‘이름’을 의미한다. DOMString
middleName 전체 이름에서 성과 이름 사이의 ‘중간 이름’. DOMString
honorificPrefix ’Mr.’ 나 ‘Dr.’ 같은 접두 호칭을 의미한다. DOMString
honorificSuffix ’Esq.’와 같은 접미 호칭을 의미한다. DOMString

ContactField

속성
속성설명타입
type필드 유형을 정의한다.(예: ‘home’ 은 집전화, ‘mobile’ 은 휴대전화.)DOMString
valuephone number 등과 같은 필드에 대한 값을 정의한다.DOMString
pref’true’ 일 경우 필드 내, 다수의 값들의 대표 값을 지정한다.boolean

ContactAddress

function onSuccess(contacts) {
    for (var i=0; i<contacts.length; i++) {
        for (var j=0; j<contacts[i].addresses.length; j++) {
            alert("Pref: " + contacts[i].addresses[j].pref + "\n" +
                    "Type: " + contacts[i].addresses[j].type + "\n" +
                    "Formatted: " + contacts[i].addresses[j].formatted + "\n" + 
                    "Street Address: "  + contacts[i].addresses[j].streetAddress + "\n" + 
                    "Locality: "  + contacts[i].addresses[j].locality + "\n" + 
                    "Region: "  + contacts[i].addresses[j].region + "\n" + 
                    "Postal Code: "  + contacts[i].addresses[j].postalCode + "\n" + 
                    "Country: "  + contacts[i].addresses[j].country);
        }
    }
};

function onError(contactError) {
    alert('onError!');
};

// find all contacts
var options = new ContactFindOptions();
options.filter=""; 
var filter = ["displayName","addresses"];
navigator.contacts.find(filter, onSuccess, onError, options);
속성
속성설명타입
pref ContactAddress 객체의 대표 값 여부. boolean
type 필드 유형을 정의한다. DOMString
formatted 출력을 위한 전체 주소. DOMString
streetAddress 동 / 읍 / 면 / 가 와 같은 전체 주소. DOMString
locality ’시’ / ‘도’ 표기. DOMString
region ’주’ / ‘지방’ 표기. DOMString
postalCode 우편번호 표기. DOMString
country 도시이름 표기. DOMString

ContactOrganization

function onSuccess(contacts) {
    for (var i=0; i<contacts.length; i++) {
        for (var j=0; j<contacts[i].organizations.length; j++) {
            alert("Pref: " + contacts[i].organizations[j].pref + "\n" +
                    "Type: " + contacts[i].organizations[j].type + "\n" +
                    "Name: " + contacts[i].organizations[j].name + "\n" + 
                    "Department: "  + contacts[i].organizations[j].department + "\n" + 
                    "Title: "  + contacts[i].organizations[j].title);
        }
    }
};

function onError(contactError) {
    alert('onError!');
};

var options = new ContactFindOptions();
options.filter="";
filter = ["displayName","organizations"];
navigator.contacts.find(filter, onSuccess, onError, options);
속성
속성설명타입
prefContactOrganization 객체의 대표 값 여부.boolean
type필드 유형을 정의한다.(예: ‘work’ 은 직장.)DOMString
name소속의 이름을 정의한다.DOMString
department 소속 부서를 정의한다. DOMString
title 소속 내의 직함을 정의한다. DOMString

ContactFindOptions

// success callback
function onSuccess(contacts) {
    for (var i=0; i<contacts.length; i++) {
        alert(contacts[i].displayName);
    }
};

// error callback
function onError(contactError) {
    alert('onError!');
};

// specify contact search criteria
var options = new ContactFindOptions();
options.filter="";          // empty search string returns all contacts
options.multiple=true;      // return multiple results
filter = ["displayName"];   // return contact.displayName field

// find contacts
navigator.contacts.find(filter, onSuccess, onError, options);
속성
속성설명타입
filter검색어 또는 검색조건을 정의한다.DOMString
multiple검색 결과으로 다수의 연락처를 가져올 것인지의 여부.Boolean

ContactError

속성
속성설명
code에러코드를 나타낸다.
Error Code
유형설명
ContactError.UNKNOWN_ERROR알 수 없는 오류
ContactError.INVALID_ARGUMENT_ERROR잘못된 파라미터 오류
ContactError.TIMEOUT_ERROR시간 초과 오류
ContactError.PENDING_OPERATION_ERROR명령 지연 오류
ContactError.IO_ERROR읽기나 쓰기 중 오류
ContactError.NOT_SUPPORTED_ERROR지원하지 않음
ContactError.PERMISSION_DENIED_ERROR권한 부여에 대한 오류

참고 자료