메뉴 건너뛰기

조회 수 7452 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

폰갭 프로젝트를 만들때 cordova-2.9.0.jar 파일을 포함시켰었는데, 이 라이브러리에 DroidGap 클래스와 기본 플러그인들이 정의되어 있다.

이것을 사용하려면 assets/www 밑에 포함시킨 cordova.js 파일을 인클루드 시키고, 자바스크립트 호출 방식으로 사용을 하면 된다.

 

플러그인에는 여러가지가 있는데, http://docs.phonegap.com/en/2.9.0/index.html

위 링크에 들어가면 사용할 수 있는 플러그인 종류가 나열되어 있다.

애뮬레이터에서 테스트해볼만 적당한게.. "Contacts"를 사용하는 것으로 한번 정리를 해보겠다.

 

즉, 폰갭 어플에서 주소록을 추가하는 간단한 예문을 만들어보면 될 듯 하다.

 

1. "Contacts" 링크를 클릭해보면 사용 방법이 나온다.

2. 안드로이드용으로 만들 것이므로, Android 만을 보면..

3. 먼저 Permissions 부분을 보면 /res/xml/config.xml 파일에 사용할 플러그인을 지정해줘야 한다.

4. config.xml 파일을 열어서 제일 밑으로 이동하면 <plugins></plugins> 태그가 공백으로 있는데, 이 안에다가 아래와 같이 한줄을 추가한다.

<plugins>

 <plugin name="Contacts" value="org.apache.cordova.ContactManager" />

</plugins>

 

5. 그다음 AndroidManifest.xml 에 필요한 권한을 부여해야 되는데, 주소록 정보를 얻을 권한, 읽을 권한, 만들 권한 세가지가 존재한다. 여기서는 만들기만 할 것이므로 <manifest> 태그 안에다가 아래 한줄을 추가해준다.

<manifest ~~~~>

...

<uses-permission android:name="android.permission.WRITE_CONTACTS" />

</manifest>

 

그런데, 희한하게 저 권한만 주면 어플이 죽는다.

뭔가 권한이 더 필요할 듯 한데.. 일단은 아래와 같은 모든 권한을 전부 추가해준다.

 <uses-permission android:name="android.permission.CAMERA" />
 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.RECEIVE_SMS" />
 <uses-permission android:name="android.permission.RECORD_AUDIO" />
 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 <uses-permission android:name="android.permission.READ_CONTACTS" />
 <uses-permission android:name="android.permission.WRITE_CONTACTS" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 <uses-permission android:name="android.permission.BROADCAST_STICKY" />     

 

6. 문서 밑으로 내려보면 "contacts.create" 메서드에 대해 나오는데 동기함수이며, Contact 객체를 반환한다고 나와있다. 그리고, Contact 객체를 만들 뿐이며 실제 폰의 contacts database에는 저장하지 않는다고 나와있다. ( 저장하려면 Contact.save 메서드를 이용해야 한다. )

 

즉, contacts.create 메서드로 Contact 객체를 생성한 후 값을 설정한 다음 save 메서드를 호출해서 저장하면 되는 것이다.

 

7. 좀 내려보면 Contact 객체의 프로퍼티 목록이 나와있고 타입이 나와있다. 각각의 프로퍼티를 해당하는 타입객체로 채워넣으면 된다.

 

8. 예제를 만들기 위해서 index.html 을 다음과 같이 코딩한다.

 

<!DOCTYPE html>
 <html>
      <head>
           <title>Contacts</title>
           <meta name="viewport" content="width=device-width, initial-scale=1"/>
          
           <link rel="stylesheet" href="jquery.mobile-1.3.1.min.css"/>
           <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
           <script src="jquery-1.10.2.min.js"></script>
           <script src="jquery.mobile-1.3.1.min.js"></script>
           <script type="text/javascript">
             $(function() {
              $("#btn_add").click(function() {
               var contact = navigator.contacts.create();
               contact.displayName = $("#displayName").val();
               contact.nickname = $("#nickname").val();
               
               var name = new ContactName();
               name.givenName = $("#givenName").val();
               name.familyName = $("#familyName").val();
               
               contact.name = name;
               
               var phoneNumbers = [];
               phoneNumbers[0] = new ContactField("mobile", $("#phoneNumber").val(), true);
               
               contact.phoneNumbers = phoneNumbers;
               
               contact.save();
               
               alert("Saved");
              });
             });
           </script>
      </head>

      <body>
   <section id="mainpage" data-role="page">
    <header data-role="header">Contacts</header>
    <div class="content" data-role="content">
     <label for="displayName">displayName</label><input type="text" id="displayName"/>
     <label for="nickname">nickname</label><input type="text" id="nickname"/>
     <label for="familyName">familyName</label><input type="text" id="familyName"/>
     <label for="givenName">givenName</label><input type="text" id="givenName"/>
     <label for="phoneNumber">phoneNumber</label><input type="text" id="phoneNumber"/>
     <input type="button" value="Add Contact" id="btn_add" />
    </div>
    <footer data-role="footer">Hanttasoft</footer>
   </section>
      </body>

 </html>

 

9. 즉, 몇가지 입력필드에 값을 채워놓고, "Add Contact" 버튼을 클릭하면 contact.create 메서드로 Contact 객체를 생성하여 입력된 값으로 채워넣고 contact.save를 호출하여 실제 저장소에 저장을한다... 란 내용이다. ( jQuery의 ready 함수에서 버튼 이벤트를 건 것인데, 이 부분은 jQuery를 좀 공부하시길.. )

 

10. 어플을 종료하고 애뮬레이터에 있는 주소록을 보면 방금 입력한 내용이 추가된 것을 확인할 수가 있다.


List of Articles
번호 제목 날짜 조회 수
57 푸시 서비스(GCM)에 대해 알아보자 file 2015.07.01 7083
56 Invalid project description 문제 file 2015.07.01 7167
55 [Android 2.3] SharePreference 2015.07.01 7111
54 [Android 2.3] spinner file 2015.07.01 7719
53 안드로이드 맵 API key (배포용 맵키) file 2015.07.01 8149
52 안드로이드 소스 - 카메라 플래쉬(Flash, 후라시) 앱 file 2015.06.29 9042
51 안드로이드 - 소방시설바이블 어플 소스 ( 폰갭, 폰갭플러그인, assets 폴더안의 파일 이용, pdf 리더기 선택, 유튜브재생기 선택 ) file 2015.06.29 8026
50 폰갭(PhoneGap) 플러그인 만들기 2015.06.29 8588
» 폰갭(PhoneGap) 플러그인 사용하기 2015.06.29 7452
48 폰갭(PhoneGap) 에서 페이지들간의 이동 2015.06.29 8645
47 폰갭(PhoneGap) & jQuery Mobile 로 안드로이드 어플 개발 file 2015.06.29 7901
46 android SMS 리시버 2015.06.29 6923
45 Java Applet과 javascript와의 통신 2015.06.29 7828
44 안드로이드 소스 코드 보호 기법 2015.06.29 8388
43 안드로이드 NDK 개발환경 만들기 / 이클립스 NDK 설정 file 2015.06.10 7948
42 TextureView를 이용한 카메라 Preview 좌우 반전 2015.06.10 14447
41 prepend(),append(),before(),after() 메서드 2014.10.20 7445
40 Events - Unbind() 메서드 (이벤트 처리기 해제) file 2014.10.16 5807
39 Effects - Show() / Hide() 메서드 (보이기 및 숨기기) file 2014.10.16 6023
38 Effects - FadeIn() / FadeOut() 메서드 (서서히 보이기 및 숨기기) file 2014.10.16 6127
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved