Android

android - webview(웹뷰)예제

로픽 2017. 8. 26. 07:33
300x250

안드로이드 - webview(웹뷰)예제



HTTP의 iframe처럼 안드로이드 앱에 웹페이지를 삽입할 수 있는 webview라는 기능이 있습니다.


예제를 캡처한 화면입니다. 새 창으로 브라우저가 열리는 것이 아니라 webview영역 내부에 웹사이트가 딱!!



-- 안드로이드 스튜디오 에뮬레이터 캡처화면 --


** webview예제 - MainActivity 코드

package com.example.dmbtv.new_practice;


        import android.os.Bundle;

        import android.support.v7.app.AppCompatActivity;

        import android.view.View;

        import android.webkit.WebView;

        import android.webkit.WebViewClient;

        import android.widget.Button;

        import android.widget.EditText;


public class MainActivity extends AppCompatActivity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        final EditText address = (EditText) findViewById(R.id.address);

        final WebView webView = (WebView) findViewById(R.id.web);


        Button get = (Button) findViewById(R.id.go);

        get.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                webView.setWebViewClient(new WebViewClient());

                // 위 코드 한줄을 입력하지 않으면 새 창에서 웹페이지가 뜹니다.

                webView.loadUrl("http://" + address.getText().toString());

            }

        });

    }

}



여기서 setWebViewClient()메소드를 입력하지 않으시면 새로운 창에 웹페이지가 뜹니다. 


꼭 추가해주셔야 합니다.


url주소를 입력할 때 "http://"를 포함해야하는데 매번 입력하기 귀찮기 때문에 loadUrl()메소드 내부에 추가하였습니다.




** webView예제 - activity_main.xml


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context="com.example.dmbtv.new_practice.MainActivity">


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">


        <EditText

            android:id="@+id/address"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:ems="10"

            android:inputType="textUri">

            <requestFocus/>

        </EditText>


        <Button

            android:id="@+id/go"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="Go"/>


    </LinearLayout>


    <WebView

        android:id="@+id/web"

        android:layout_width="match_parent"

        android:layout_height="match_parent"/>


</LinearLayout>



** webView예제 - AndroidManifest.xml


<uses-permission android:name="android.permission.INTERNET"/>



<application>태그 위에 추가해주시면 됩니다. 위 코드는 인터넷을 사용할 때 추가합니다.

반응형