앱케이크_appcake_하이브리드앱제작_Admin.png

1.연동 프로세스 (Android, iOS 공통)

1)웹에서 전화번호부 요청 호출(웹에서 ⇒ 앱단 기능호출 : javascript구문사용) 2)앱단에서 전화번호부 정보를 가져와 JSON규격의 데이터 생성. 3)JSON데이터를 웹으로 전달해주며 웹에서 전달받은 JSON데이터를 필요한 로직에 사용.

2.연동가이드 예시 (javascript 소스)

// 앱단 메세지 핸들러 호출상태 체크 함수
function waitForCallHandler(callback_func, attempts = 0) {
    if (window.webkit && window.webkit.messageHandlers) {
        callback_func();
    } else if (attempts < 100) { // 100회까지 시도
        setTimeout(function() {
            waitForCallHandler(callback_func, attempts + 1); // 시도 횟수를 증가
        }, 100);
    } else {
        //console.log('waitForCallHandler: 최대 시도 횟수에 도달했습니다.');
    }
}

//메세지 핸들러 호출함수
waitForCallHandler(function() {
		//네이티브 호출 구문
	  window.webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify({
	                "action": "contactnumber", //변경하지 마시고 그대로 사용하셔야 합니다.
	                "callback_fun":"phoneNumbers"    //JSON데이터를 전달받으실 js함수명 지정(위처럼 함수정의하셔서 사용)
	            }));
});

function phoneNumbers(contacts) {
    //넘어온 주소록 확인
    alert('전화주소록 데이터 : ' + JSON.stringify(contacts));

		//아래처럼 연동된 데이터에 따라 처리로직 사용하시면 됩니다.
		if(contacts.length == 0){
		    alert('연락처의 접근 권한을 허용해주셔야 합니다.');
		}else{
		    //alert('연락처 정보 조회 성공!!');
				//for(i=0;i<contacts.length;i++){
				//  contacts[i].username : 사용자이름
				//  contacts[i].phone : 전화번호
				//  contacts[i].email : 이메일주소
				//}
		}

    //username : 이름
    //phone : 폰번호
    //email : 이메일주소 (값이 없을 수 있음)
    //*아래 예시 json 규격의 값으로(여러개의 배열값의 형태) 넘어갑니다.
    //[{"username":"홍길동","phone":"01079791111","email":"[email protected]"},{…}]

}

Powered by (주)옐로우윈