webview를 만들어서 테스트 중입니다.
특정 홈페이지에 접속하면 처음에
alert("test") 를 출력을 하도록 했는데 도무지 작동을 하지 않습니다.
3일 전에는 할 때 작동이 되었는데...
혹시 제가 어떤 설정 부분을 잘 못 건드린 것일까요??
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
_webview = (WebView) findViewById(R.id.webview);
_webview.setWebViewClient(new HelloWebViewClient());
_webview.getSettings().setJavaScriptEnabled(true);
_webview.loadUrl(http://193.12.22.11/default.aspx); <-- 예로 든 것입니다.
이렇게 설정이 된 상황입니다.
}//OnCreate
mWebView.getSettings().setJavaScriptEnabled(true); //JS 활성화
그런데, 웹뷰에서 Alert, confirm, Prompt는 WebChromeClient가 잡아 냅니다.
그래서 mWebView.setWebChromeClient(new WebChromeClient()); 해줍니다.
그러면 기본적인 기능은 됩니다.
여기에
mWebView.setWebChromeClient(new WebChromeClient(){
//페이지가 로딩되는 progress bar 구현
public void onProgressChanged(WebView view, int newProgress) {
mProgress.setProgress(newProgress);
//페이지 로딩 중이면 progress bar가 보이고 로딩이 완료되면 progress bar 감춤
if(newProgress>95)
mWebView.setLayoutParams(new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
else
mWebView.setLayoutParams(new LayoutParams
(LayoutParams.FILL_PARENT, 415));
}
});
이런식으로 오버라이딩 하면 기본 기능외에 추가 작업을 할 수 있습니다.
참고로 WebChromeClient에서 Alert창을 잡는 메소드는 onJsAlert 메소드 입니다.