WebView
WebView는 웹브라우저 액티비티를 만들수 있도록 해준다.
STEP1. layout file을 다음과 같이 생성한다.
<?xml version="1.0" encoding="utf-8"?>
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
STEP2. 자 이제 WebView를 사용하는 Activity를 만들어 볼까? 우선 onCreate()에서 WebView를 건저와야지.
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.google.com");
STEP3. 그런다음 WebView가 실행되게 할라면 퍼미션이 있어야 하겠지?
manifest.xml 파일에 다음과 같이 퍼미션을 설정해
<uses-permission android:name="android.permission.INTERNET" />
STEP4. 내가 만든 브라우저에서 앞으로, 뒤로, 확대, 축소 이런 기능이 가능하게 하려면 WebViewClient 객체를 구현해서
만들면 OK
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// url 주소에 해당하는 웹페이지를 로딩
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
// 웹 페이지 리소스들을 로딩하면서 계속해서 호출된다.
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
// 페이지 로딩시 호출된다.
if (dialog.isShowing()) {
dialog.cancel();
}
[출처] Webview 로딩 표시해주기|작성자 세직사
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// 페이지 요청이 시작될 경우 호출된다.
if(dialog==null) {
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setTitle("Updating");
dialog.setMessage(activity.getText(R.string.web_conn));
dialog.setProgress(0);
dialog.setMax(100);
dialog.setButton("취소", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialog.show();
super.onPageStarted(view, url, favicon);
[출처] Webview 로딩 표시해주기|작성자 세직사
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
// TODO Auto-generated method stub
super.doUpdateVisitedHistory(view, url, isReload);
}
@Override
public void onFormResubmission(WebView view, Message dontResend, Message resend) {
// TODO Auto-generated method stub
super.onFormResubmission(view, dontResend, resend);
}
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
// TODO Auto-generated method stub
super.onReceivedHttpAuthRequest(view, handler, host, realm);
}
@Override
public void onScaleChanged(WebView view, float oldScale, float newScale) {
// TODO Auto-generated method stub
super.onScaleChanged(view, oldScale, newScale);
}
@Override
public void onTooManyRedirects(WebView view, Message cancelMsg, Message continueMsg) {
// TODO Auto-generated method stub
super.onTooManyRedirects(view, cancelMsg, continueMsg);
}
@Override
public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
// TODO Auto-generated method stub
super.onUnhandledKeyEvent(view, event);
}
@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
// 키를 오버로딩한것인데 주로 웹페이지를 뒤,앞 등으로 이동하게 한다.
// 왼쪽키를 누르게 되면 뒤로, 오른쪽 키는 앞으로 가게 한다.
/*int keyCode = event.getKeyCode();
if ((keyCode == KeyEvent.KEYCODE_DPAD_LEFT) && webview.canGoBack()) {
webview.goBack();
return true;
}else if ((keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) && webview.canGoForward()) {
webview.goForward();
return true;
}
return false;*/
return super.shouldOverrideKeyEvent(view, event);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// 웹페이지 로딩중 에러가 발생했을때 처리
Toast.makeText(activity, activity.getText(R.string.web_error) + description, Toast.LENGTH_SHORT).show();
if (dialog.isShowing()) {
dialog.cancel();
}
[출처] Webview 로딩 표시해주기|작성자 세직사
}
[출처] Webview 로딩 표시해주기|작성자 세직사
}
STEP5. 이렇게 만든 WebViewClient를 사용하려면 onCreate()에서 다음과 같이 코딩한다.
webview.setWebViewClient(new HelloWebViewClient ());
STEP6. Activity를 실행하면 다음과 같은 결과가 짜잔~~
'Dev. 안드로이드 > 참고소스' 카테고리의 다른 글
안드로이드 스크린 화면 크기 구하기 (0) | 2012.05.20 |
---|---|
안드로이드 TabHost, TabWidget 사용하기 (0) | 2012.04.19 |
edittext 키패드 입력에 따른 리스너 지정 (0) | 2012.04.06 |
Thread의 종료에 대한 예제 소스 (0) | 2012.03.31 |
가상키보드 보이기, 감추기 코드 (0) | 2012.03.27 |