티스토리 뷰

Android/실전 TIP

웹뷰 만들기

Dev-Drake 2020. 1. 7. 15:22
반응형

1. AndroidManifest.xml

// 인터넷 권한 설정

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

 

// 홈페이지 접속 오류 방지

android:usesCleartextTraffic="true"

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pkg.humortoday">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

 

2. activity_main.xml

// 웹뷰 컴포넌트 넣기

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true">
    </WebView>

</android.support.constraint.ConstraintLayout>

 

3. MainActivity.java

// 웹뷰 컴포넌트 연결 및 동작

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    private WebView m_WebView; 
    private WebSettings m_WebSettings; 
    private String m_SiteAddress = "http://naver.com";

    BackPressCloseHandler backPressCloseHandler = new BackPressCloseHandler(this);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        m_WebView = (WebView) findViewById(R.id.webView);

        m_WebView.setWebViewClient(new WebViewClient()); 
        m_WebSettings = m_WebView.getSettings(); 
        m_WebSettings.setJavaScriptEnabled(true); 
        m_WebSettings.setSupportMultipleWindows(false); 
        m_WebSettings.setJavaScriptCanOpenWindowsAutomatically(false); 
        m_WebSettings.setLoadWithOverviewMode(true); 
        m_WebSettings.setUseWideViewPort(true); 
        m_WebSettings.setSupportZoom(false); 
        m_WebSettings.setBuiltInZoomControls(false); 
        m_WebSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); 
        m_WebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); 
        m_WebSettings.setDomStorageEnabled(true); 

        m_WebView.loadUrl(m_SiteAddress); 
    }

    @Override
    public void onBackPressed() {
    	// 뒤로 가기 눌렀을때 전 페이지로 이동 
        if(m_WebView.canGoBack())
            m_WebView.goBack();
    }
}

 

반응형

'Android > 실전 TIP' 카테고리의 다른 글

이미지와 텍스트 같이 들어가는 버튼  (0) 2019.04.04
종료 처리  (0) 2019.04.04
앱 이름 설정  (0) 2019.04.04
음성 인식  (0) 2019.03.29
이미지 뷰 ImageView  (0) 2019.03.29
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday