관리 메뉴

moozi

WebView 이용하기 - 구글 홈페이지 띄우기 본문

안드로이드개발강좌

WebView 이용하기 - 구글 홈페이지 띄우기

moozi 2010. 3. 2. 14:44

WebView는 웹페이지를 보여주는, 웹브라우저와 비슷한 역할을 하는 뷰입니다.

이번 강좌 역시 안드로이드 개발자 사이트의 내용을 토대로 살펴보겠습니다.


1. 다음과 같이 프로젝트를 생성합니다.



2. AndroidManifest.xml 파일을 다음과 같이 편집합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="my.HelloMyWeb"
      android:versionCode="1"
      android:versionName="1.0">
      <uses-permission android:name="android.permission.INTERNET" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloMyWeb"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="6" />

</manifest>

코드에서 굵은 글씨 부분이 추가되었는데, 인터넷접속을 허가하는 권한을 부여한 것입니다.


3. res -> layout -> main.xml 을 다음과 같이 편집합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

</LinearLayout>

코드에서 굵은 글씨 부분이 WebView 가 정의된 곳입니다.


4. src -> my.HelloMyWeb -> HelloMyWeb.java 파일을 다음과 같이 편집합니다.

package my.HelloMyWeb;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HelloMyWeb extends Activity {
WebView mWebView;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
               
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);  // 웹뷰에서 자바스크립트실행가능
        mWebView.loadUrl("http://www.google.com");  // 구글홈페이지 지정
      mWebView.setWebViewClient(new HelloWebViewClient());  // WebViewClient 지정          
       
    }
   
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);

    }
   
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
   
}

코드에서

if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);

이부분은 뒤로가기 키를 눌렀을 때, 이전 페이지가 존재하면 전페이지로 돌아가게 해줍니다.

그리고,

private class HelloWebViewClient extends WebViewClient 에서

HelloWebViewClient 클래스는 WebViewClient 클래스를 상속받아서 만들었는데, WebViewClient 는 WebView 에서 로딩한 웹페이지의 링크를 클릭했을 때, 해당 URL을 로딩하는 데 필요합니다.


5. Ctrl + F11 로 실행합니다.

실행되어 구글홈페이지가 로딩되기까지 시간이 좀 걸립니다.

[ WebView 실행결과 - 구글홈페이지가 로딩된 모습 ]


저의 블로그 moozi.tistory.com 를 검색해 보았습니다.

[ WebView 실행결과 - moozi.tistory.com 을 검색하는 모습 ]

moozi.tistory.com 가 로딩되었습니다.

[ WebView 실행결과 - moozi.tistory.com 가 로딩된 모습 ]

 버튼을 누르면 이전 페이지로 돌아가게 됩니다.

Comments