티스토리 뷰

728x90


다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.
이어보기 : http://thdev.tech/androiddev/2016/08/11/Android-WebView-JavascriptInterface-Example




안드로이드 웹뷰를 이용하여 Web에서 javascriptInterface를 호출하고, WebView에서 Web의 javascript를 호출하는 방법을 정리하려고 합니다.

위와 같이 정리할 예정이며, 첫 번째로 Android WebView javascriptInterface 사용하기를 정리하려고 합니다.


관련글

  • Android WebView javascriptInterface 사용하기
  • Android WebView TestCode 작성하기
  • Android WebView Kotlin Base 코드 정의 살펴보기
  • Android WebView Kotlin TestCode 작성하기


해당 프로젝트는 Android minSdk 18 이상으로 생성하였고, Target API는 24입니다.

minSdk를 18로 설정한 이유는 아래의 이유 포함 Android TestCode 작성 시에 사용한 기법이 포함되어 있습니다. 읽으시면서 참고하여 읽어주세요.

MinSdk 17 이상으로 적용한 이유??

minSdk 17 이상으로 적용한 이유는 Android addJavascriptInterface를 사용하는데 있어서 최소 17버전 이상을 권장하고 있어서입니다.

This method can be used to allow JavaScript to control the host application. This is a powerful feature, but also presents a security risk for apps targeting JELLY_BEAN or earlier. Apps that target a version later than JELLY_BEAN are still vulnerable if the app runs on a device running Android earlier than 4.2. The most secure way to use this method is to target JELLY_BEAN_MR1 and to ensure the method is called only when running on Android 4.2 or later. With these older versions, JavaScript could use reflection to access an injected object’s public fields. Use of this method in a WebView containing untrusted content could allow an attacker to manipulate the host application in unintended ways, executing Java code with the permissions of the host application. Use extreme care when using this method in a WebView which could contain untrusted content.

API 17 전 버전에서도 @JavascriptInterface를 명시적으로 사용하게 되며, 워닝 메시지가 표시가 되며, 사용하는데 문제가 없습니다.

Android TestCode 적용으로 인해 저는 API 18 이상을 사용하여 작업하였습니다.


다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.
이어보기 : http://thdev.tech/androiddev/2016/08/11/Android-WebView-JavascriptInterface-Example



댓글