<html> <head> <script language="javascript"> var id=0; function changeImage() { alert("A"); id= (id==0)?1:0; document.getElementById("image").src="id+".jpg"; alert("B"); } </script> </head> <body> <a onClick="Window.demo.onClick()"> <img id="image" src="0.jpg"/></a> </body> <html>
위에 것이 sample.html이구요
package net.npaka.webviewex;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.webkit.JsResult;
import android.webkit.WebView;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
public class WebViewEx extends Activity {
private WebView webView; //웹뷰
private Handler handler; //핸들러
//어플리케이션 초기화
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//핸들러 생성
handler=new Handler();
//웹 뷰 생 성
webView=new WebView(this);
WebSettings settings=webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSavePassword(false);
settings.setSaveFormData(false);
settings.setSupportZoom(false);
//JavaScript 인터페이스 생성
webView.addJavascriptInterface(new ChromeClient(), "demo");
//WebChromeClinet클래스의 상속 클래스 생성
webView.setWebChromeClient(new ChromeClient());
//HTML 읽기
webView.loadUrl("file:///android_asset/sample.html");
setContentView(webView);
}
//JavaScript 인터페이스 생성
public final class JSInterface {
//생성자
public JSInterface() {
}
//자바 인터페이스 메소드 처리
public void onClick(){
handler.post(new Runnable() {
public void run() {
android.util.Log.e("","changeImage");
webView.loadUrl("javascript:changeImage();
}
});
}
}
//웹크롬클라이언트클래스 상속클래스 생성
public final class ChromeClient extends WebChromeClient {
//알람 이벤트 처리
@Override
public boolean onJsAlert(WebView view,
String url, String message, JsResult result) {
android.util.Log.e("",message);
result.confirm();
return true;
}
}
}
이 위에 것은 WebViewEx.Java파일 입니다.
제폰 기종 <갤럭시s2>에서 실행시에
첨부해논 사진과 같이 선택됫다고 전체구 주황색으로 감싸지면서
다음사진으로 바뀌지않는데 소스파일에 오류가 잇는건지 핸드폰에 오류가 잇는건지
감을잡지못하겟네요ㅠㅠ