메뉴 건너뛰기

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

직접 만든 플러그인을 호출할 때는 cordova.exec 함수를 호출해서 사용한다. 

 

형태는 아래와 같다.

 

cordova.exec( 성공시콜백함수, 실패시콜백함수, 클래스명, 액션명, [전달인자] );

 

예를 들어서

 

cordova.exec( function(param) {}, function(error) {}, "MyPlugin", "MyAction", ["param1", "param2", "param3"]);

 

위와 같이 호출했다면 MyPlugin 클래스의 execute 함수가 호출이 되는데, execute의 파라미터로 액션명과 파라미터들이 같이 전달된다. 그리고, execute 함수에서 콜백함수를 호출해주면 자바스크립트의 성공콜백함수, 실패콜백함수가 호출되는 것이다.

 

>> 위 스토리를 실제 예로 정리를 해보면 다음과 같다.

 

1. CordovaPlugin 클래스로부터 상속을 받는 클래스를 만든다.

 

...

import org.apache.cordova.api.CordovaPlugin;

import org.apache.cordova.api.PluginResult;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

 

public class HelloPlugin extends CordovaPlugin {

 ...

}

 

2. CordovaPlugin 클래스의 execute 함수를 오버라이드한다.

 

public class HelloPlugin extends CordovaPlugin {

...

 

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

...

}

}

 

3. execute 함수를 다음과 같이 정의한다.

 

if ( action.equals("hello") ) {

String yourname = args.getString(0);

 

if ( yourname == null || yourname.length() == 0 ) {

callbackContext.error("input your name");

return true;

}

 

callbackContext.success("Hello " + yourname );

return true;

}

return false;

 

4. 해석을 해보자면 이름을 넘겨받으면 "Hello 이름" 으로 반환해주는 역할을 한다.

이름이 입력되지 않았다면 error 콜백함수를 호출해주며 정상적이라면 success 콜백함수를 호출해준다.

그리고, hello 액션이 아니라면 false를 반환하고 false가 반환되면 그냥 예외로 떨어진다.

 

5. index.html를 다음과 같이 수정한다.

 

<!DOCTYPE html>
 <html>
      <head>
           <title>Hello</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() {
              
               cordova.exec(function(result) {
                alert(result);
               }, function(error) {
                alert(error);
               }, "HelloPlugin", "hello", [$("#yourname").val()]);
               
              });
             });
           </script>
      </head>

      <body>
   <section id="mainpage" data-role="page">
    <header data-role="header">Hello</header>
    <div class="content" data-role="content">
     <label for="yourname">yourname</label><input type="text" id="yourname"/>
     <input type="button" value="Hello" id="btn_add" />
    </div>
    <footer data-role="footer">Hanttasoft</footer>
   </section>
      </body>

 </html>

 

6. 이제 HelloPlugin 이란 플러그인을 config.xml 파일에다가 등록해준다.

 

/res/xml/config.xml 파일을 열어서 다음줄을 추가해준다.

 

<plugin name="HelloPlugin" value="kr.inclass.mysample.HelloPlugin" />

 

===> 물론, 클래스의 전체경로는 자신의 패키지명에 맞게 수정한다.

 

7. 위 까지 작업한후 Run을 시켜보면...

이름 입력란에 이름을 입력하고 "Hello" 버튼을 클릭하면 입력된 이름으로 인사를 하는 alert 창이 뜨게 된다.

이름을 입력하지 않고 버튼을 클릭하면 이름 입력하라는 경고창이 뜨게 된다.


  1. 노티피케이션(Notification) 사용법 / Notification.Builder , NotificationManager

  2. 어댑터 뷰(Adapter View) & 어댑터(Adapter) (1)

  3. Activity Data Transfor/ 액티비티 이동간에 데이터 전송하기

  4. Activity Switching / 안드로이드 액티비티 전환 / 화면 전환

  5. No Image 07Jun
    by
    2016/06/07 Views 7458 

    알아놓으면 좋은 내용정리

  6. 간단한 mp3 플레이어 만들기 , 음악넣기 , 노래재생

  7. 암시적 인텐트를 사용한 인터넷열기, 전화걸기, 문자보내기 [Intent (인텐트)]

  8. No Image 07Jun
    by
    2016/06/07 Views 7626 

    Intent (인텐트)

  9. Android 와 JSP 간 파라미터 암복호화 (3)

  10. No Image 26May
    by
    2016/05/26 Views 7735 

    Android 와 JSP 간 파라미터 암복호화 (2)

  11. Android 와 JSP 간 파라미터 암복호화 (1)

  12. 카카오톡 대화내용 가져오기(sqlite3, chat_logs)

  13. 카카오톡 분석하기 (2) - 카카오톡 암호화 함수 찾기

  14. 카카오톡 분석하기 (1) - sqlite 파해치기

  15. 안드로이드용 채팅프로그램 클라이언트(java), 서버(c#) 소스

  16. No Image 18Mar
    by
    2016/03/18 Views 7131 

    네트워크 연결 상태 및 3G/WIFI 연결상태 체크하기

  17. Android Push GCM 프로젝트 앱 적용 하기(2)

  18. 안드로이드] 페이스북 같은 슬라이드 메뉴 만들기

  19. No Image 15Dec
    by
    2015/12/15 Views 6629 

    Android TIP] strings.xml 에서 특수문자 사용하기

  20. No Image 15Dec
    by
    2015/12/15 Views 6487 

    Android] Fragment 내부의adapter에서 startActivity 하기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved