2014년 8월 8일 금요일

초보자도 만들 수 있는 안드로이드 애플리케이션, WebView

오늘 해 볼 작업은 WebView 입니다. 웹기반 어플리케이션이라고 보면 되고 완성될 화면은 아래와 같습니다.
Daum의 모바일 웹페이지 프론트 페이지입니다. 맨 아래 하단에는 버튼을 두어서 원하는 곳으로 이동도 해 볼 겁니다.


Daum의 모바일용 웹페이지를 호출한 화면입니다.
웹브라우져 객체를 담기 위해 webview 를 아래 버튼을 만들기 위해 button 을 이용합니다.


1. 프로젝트 생성
 HelloWebView


2. Main.xml 코딩
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent" 
android:layout_height="fill_parent">
 
 <LinearLayout
 android:orientation="vertical"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"
 android:layout_weight="1"> 
 
  <WebView
  android:id="@+id/webview" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"/>
  
 </LinearLayout>
 
 <LinearLayout
 android:orientation="horizontal"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"
 android:layout_weight="8">
 
  <Button
  android:id="@+id/Button01"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:text="Home"
  android:layout_weight="1"
  android:textSize="8pt"/>
  
   <Button
   android:id="@+id/Button02"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:text="Portal"
  android:layout_weight="1"
  android:textSize="8pt"/>
  
   <Button
   android:id="@+id/Button03"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:text="Close"
  android:layout_weight="1"
  android:textSize="8pt"/>
  
 </LinearLayout>
 
</LinearLayout>
위 처럼 코딩 하시면 화면 구성은 끝납니다. 화면에 구성에 필요한 부분은 별도로 공부 하시면 도움이 많이 될겁니다. 별도로 포스트 할 예정입니다.


3. HellowWebView.java 코딩
package com.sample.HelloWebView;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
public class HelloWebView extends Activity {
 private static final String URL1="http://m.daum.net/mini"; 
 private static final String URL2="http://m.naver.com"; 
 WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
     
        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl(URL1);
        
        webview.setWebViewClient(new HelloWebViewClient());
        
        Button b1 = (Button)findViewById(R.id.Button01);
        Button b2 = (Button)findViewById(R.id.Button02);
        Button b3 = (Button)findViewById(R.id.Button03);
        
        b1.setOnClickListener(new View.OnClickListener() { 
   @Override
   public void onClick(View v) {
          webview = (WebView) findViewById(R.id.webview);
          webview.getSettings().setJavaScriptEnabled(true);
          webview.loadUrl(URL1);
          webview.setWebViewClient(new HelloWebViewClient());
   }
  });
        
        b2.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
          webview = (WebView) findViewById(R.id.webview);
          webview.getSettings().setJavaScriptEnabled(true);
          webview.loadUrl(URL2);
          webview.setWebViewClient(new HelloWebViewClient());
   }
  });
        
        
        b3.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    finish();
   }
  });
    }
        
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.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;
        }
    }
}
다소 복잡해 보이지만 자동 완성 기능이 있으므로 어렵지 않습니다. 안드로이드는 자바와 XML로 구성되어 있다고 보면 됩니다. 특히 자바의 기초적인 부분을 잘 이해 하고 계시다면 개발은 어렵지 않을 거란 생각이 드네요.


4. 애플리케이션 훝어보기
 

Portal 버튼을 눌러 네이버로 이동한 화면입니다. 다시 Home 버튼을 누르면 다음으로 이동합니다. Close 는 화면을 종료하며 finish() 함수를 호출하여 간단하게 애플리케이션을 종료 할 수 있습니다.

댓글 없음:

댓글 쓰기