조규봉님_폰갭_조사된_내용

Download Report

Transcript 조규봉님_폰갭_조사된_내용

조사된 내용 / 조사할 내용
H9 조규봉
차례
• 1. JS -> JAVA / JAVA -> JS 방법 조사 :
• 2. PhoneGap Android 의 실행 방식 :
– 기존 박지훈씨 PPT 내용 참고.
• 3. PORTING 에 필요한 내용.
• 4. WebKit 내용 좀 더 찾아보기 – PLUGIN
• 2. PhoneGap Android 의 실행 방식을 보면,
– 2.1. JS -> JAVA의 경우, Android Webkit interface 를
이용한다.
• 2.1.1. 사용자의 JS 파일에서 phoneGap.js 에 선언된 device
제어 함수를 이용하려 하면
• 2.1.2. phoneGap.js 에서 JAVA에 해당 함수를 요청한다.
• 2.1.3. 그럼 device 제어함수의 URL의 protocol 부분이 gap:
으로 바꾼다.
• 2.1.4. Android의 WebKit class( WebView )는,
shouldOverrideUrlLoading() 를 이용하여 URL 요청에 대한
이벤트 핸들러를 걸 수 있다.
– http://developer.android.com/resources/tutorials/views/hellowebview.html
• 2.1.5. 그 외
– WebView.addJavascriptInterface ()
– http://devian.tistory.com/159
– 2.2. JAVA -> JS의 경우, Android Webkit interface()
를 이용한다.
• 2.2.1. WebView 의 loadURL() 을 이용한다.
박지훈씨 자료 참조.
• 3. PORTING 에 필요한 내용.
– 3.1. BADA 에서 JAVA 를 지원하는가.
• 3.1.1. BADA SDK 의 JAVA 버전이 있다.
• Samsung_sdk_1.2.2.exe
• http://innovator.samsungmobile.com/down/cnts/toolS
DK.list.do?platformId=3&cntsId=&searchText=&sortTy
pe=0&codeType=C452&indexDirection=1&indexType
=1&listLines=10
• 3.1.2. Dalvik 을 BADA로 Porting 할 수 있는가?
– 결론 : 힘들다. JAVA VM 과 Dalvik 은 많이 다르다. ( 라이센
스를 피하기 위해서 명령어부터 다시 만들었다고 )
• 3.1.3. 그렇다면, PhoneGap용 Android 소스만이라도
JAVA VM으로 Porting 해서 쓸 수 있나?
–
–
–
–
3.1.3.1. Java VM ( SE ) / Java VM ( ME ) 의 차이.
3.1.3.2. WebKit 의 차이 : J2ME web services API : JSR 172
http://developers.sun.com/mobility/apis/articles/wsa/
3.1.3.3. 결론 : WebKit 이 포팅된게 아니라서, JS등의 동작
보증이 애매하다.
JAVA ME WEB ( JSR 172)
– 3.2. BADA WebKit & SDK
• 3.2.1. BADA WebKit 이 2.1, 2.2. 역할을 하는 interface
를 제공하는가.
• 3.2.2. BADA SDK 에서 코드를 작성해야 하는데, BADA
의 library 모음집이나, tutorial, API List 등이 있는가.
• 3.2.3. BADA SDK 에서 WebKit 을 제어할 수 있는가.
• 3.2.4. 결론 : BADA SDK 를 설치해 도움말( F1 ) 로 확인
해 보면, WebKit 속성과 인터페이스를 알 수 있다.
– http://developer.bada.com/apis/tools/sdk/list.do?categoryI
D=FC02040800
• 3.2.5.
Web::Controls::ILoadingListener::OnLoadingRequested()
• 3.2.6. Web::Controls::Web::EvaluateJavascriptN()
• 3.2.7. Web::Controls::Web::SetDownloadListener()
• 3.2.8. Web::Controls::Web::LoadUrl ( )
• 3.3. 데이터 전달 방법 : BASE64?
•
•
•
•
•
참고 사이트
http://forums.badadev.com/
http://innovator.samsungmobile.com/
http://devian.tistory.com/159
http://par.sarang.net/369