[android] ~Jelly Bean WebView vs. Kitkat WebView. |
http://stefanodacchille.github.io/blog/2014/02/23/webview-explorations/
Hit test result.
WebView 에서 어떤 element 를 touch 했을 경우,
WebView.getHitTestResult() 를 호출하면 hitTestResult object 가 return 된다.
HitTestResult 에는 element type 과 url 값이 들어있다.
예를 들어 <a> tag 를 touch 했을 때는 WebView.HitTestResult.SRC_ANCHOR_TYPE 이 type 으로 return 된다.
기존 WebView 는 이 녀석이 지원하지 않는 element 를 touch 하면 null 로 return 되었지만,
Chromium-based Kitkat WebView 는 모든 element 에 대해 null 이 아닌 정상적인 값이 나온다.
WebView history.
WebView 는 WebBackForwardList 라는 녀석에 방문했던 모든 url 을 저장한다.
WebView.copyBackForwardList() 함수를 통해 이 값을 받아올 수 있다.
WebView.goBack() 를 호출한 후 WebBackForwardList.getCurrentItem() 을 호출하면..
기존 WebView 는 goBack 처리되기 전의 url 이 return 되고,
Kitkat WebView 에서는 goBack 처리된 url 이 return 된다.
Javascript Links
<a href="javascript:;">...</a> 와 같이 a 가 url 이 아닌 javascript function 이 들어가 있는경우,
Kitkat 에서는 WebViewClient.onPageFinished() 가 불린다.
API additions.
- Remote Debugging 가능.
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
- WebView.evaluateJavascript() 함수가 추가.
실행하고픈 Script 를 String 형태로 넣고, ValueCallback 을 함꼐 넣어주어 수행 가능하다.
Compatibility 를 지키며 변화된 API 적용하기.
if else 등으로 버전분기하기보다는 API 를 encapsulation 을 이용하여 깔끔하게 처리하는 방법도 있다.
이는 위의 출처를 확인하시길.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android] 이미지와 텍스트 함께 배치하기. ( 신문기사처럼 ) (0) | 2014.04.11 |
---|---|
[android] flood fill algorithm performance tests. (7) | 2014.04.11 |
[android] baselineAligned 속성의 정체. (0) | 2014.04.10 |
[Android] Google Play Services 4.3 Release. (0) | 2014.04.09 |
[android] how to input xml percentage sign (0) | 2014.04.09 |
댓글