본문 바로가기

Android Network/Click example

Programmatic Click in WebView

WebView DOM Navigation Example

Following Links can be clicked programmatically using WebView
Google

Naver

Daum


아래의 HTML 내용이 WebView에 로드된 상태라면 포함된 3개의 링크를 구별하여 프로그램적으로 클릭효과를 낼 수가 있다. 

links.html

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>WebView loadUrl() Test</title>

</head>

<body>


<h2>WebView DOM Navigation Example</h2>


Following Links will be clicked programmatically by WebView<br>


<a href="http://google.co.kr">Google</a>

<a href="http://naver.com">Naver</a>

<a href="http://daum.net">Daum</a>


</body>

</html>


위의 HTML 코드를 로드한 WebView의 loadUrl() 과 자바스크립트의 DOM을 이용하여 특정 링크를 확인하여 코드상에서 클릭효과를 낼 수 있다. 참고로 DOM 오브젝트에 있는 click()함수는 안드로이드에서는 구현되어 있지 않기 때문에 아래처럼 클릭하는 기능을 구현해야 한다는 것이다

MainActivity.java

webView.loadUrl("javascript:(function(){"+

"var arr = document.getElementsByTagName('a');"+

"for(var i=0;i<arr.length;i++) {"+

" if(arr.item(i).getAttribute('href')=='http://google.co.kr') {"+

" link = arr.item(i);"+

" e=document.createEvent('HTMLEvents');"+

" e.initEvent('click',true,true);"+

        " link.dispatchEvent(e);"+

" break;"+

" }"+

"}"+

   "})()");