1. PhoneGap for Bada조사된 내용 / 조사할 내용 H9 조규봉 ckbcorp@gmail.com http://webdevmobile.com http://code.google.com/p/badaphonegap/
2. 차례 1. JS -> JAVA / JAVA -> JS 방법 조사 : 2. PhoneGap Android 의 실행 방식 : 기존 박지훈씨 PPT 내용 참고. 3. PORTING 에 필요한 내용. 4. WebKit내용 좀 더 찾아보기 – PLUGIN
3. 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/hello-webview.html 2.1.5. 그 외 WebView.addJavascriptInterface () http://devian.tistory.com/159 2.2. JAVA -> JS의 경우, Android Webkit interface() 를 이용한다. 2.2.1. WebView의 loadURL() 을 이용한다.
8. 3. PORTING 에 필요한 내용. 3.1. BADA 에서 JAVA 를 지원하는가. 3.1.1. BADA SDK 의 JAVA 버전이 있다. Samsung_sdk_1.2.2.exe http://innovator.samsungmobile.com/down/cnts/toolSDK.list.do?platformId=3&cntsId=&searchText=&sortType=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등의 동작 보증이 애매하다.
10. 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?categoryID=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 ( )