배워서남준다

Android WebView Sample

Study4U, 2019-03-14 14:29:57

조회 수
35
추천 수
0

안드로이드 스튜디오를 실행해서, 새로운 프로젝트를 생성한다.

WEBVIEW01.jpg

WEBVIEW02.jpg



1. 우측패널에서 AndroidManifest.xml 을 수정한다.

WEBVIEW03.jpg



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

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

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



2. res/layout/activity_main.xml 기본 액티비티 레이아웃에 기본 등록되어 있던 TextView 를 삭제하고, WebView 를 등록한다.

WEBVIEW04.jpg



<android.support.v4.widget.SwipeRefreshLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/swipeLayout">
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>



3. res/values/styles.xml

상단 타이틀바가 필요없는 경우 스타일에서 아래 구문을 추가한다.

WEBVIEW05.jpg



<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <!-- No Title Bar-->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

4. MainActivity.java 에 구문 등록하고 빌드하면 끝!


package com.domain.myapp;

import android.os.Build;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    SwipeRefreshLayout refreshView;
    private WebView mWebView;
    private WebSettings mWebSettings;
    public String myUrl = "https://www.google.com/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        refreshView = (SwipeRefreshLayout) findViewById(R.id.swipeLayout);
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.setWebViewClient(new WebViewClient() {
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                refreshView.setRefreshing(false);
            }
        });

        mWebSettings = mWebView.getSettings();
        mWebSettings.setJavaScriptEnabled(true);
        mWebSettings.setDomStorageEnabled(true);
        mWebSettings.setGeolocationEnabled(true);
        mWebSettings.setSupportMultipleWindows(true);
        mWebSettings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
        mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        if(Build.VERSION.SDK_INT >= 16) {
            mWebSettings.setAllowFileAccessFromFileURLs(true);
            mWebSettings.setAllowUniversalAccessFromFileURLs(true);
        }

        if(Build.VERSION.SDK_INT >= 21) {
            mWebSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        mWebView.loadUrl(myUrl);
        mWebView.setWebChromeClient(new WebChromeClient());
        mWebView.setWebViewClient(new WebViewClientClass());
        refreshView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                mWebView.reload();
                refreshView.setRefreshing(false);
            }
        });
    }

    private class WebViewClientClass extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.d("check URL",url);
            view.loadUrl(url);
            return true;
        }
    }
}

WEBVIEW06.jpg


WEBVIEW07.jpg



첨부

0 댓글

목록

Page 1 / 5
번호 제목 날짜 조회 수
공지

IE에서 영상 또는 슬라이드 반응속도가 느린경우 해결방법

| 일반
  • file
2012-09-22 2525
91

Android 앱에서 서버 통신 방법

| 안드로이드
  • file
2019-03-15 48
90

Android WebView Sample

| 안드로이드
  • file
2019-03-14 35
89

사이트에 SNS 공유 버튼 등록방법

  • file
2019-03-05 64
88

IONIC for Synology

2019-02-26 41
87

Install NGINX + PHP + MARIADB for MAC

| 웹개발 1
2019-01-10 87
86

자주 사용하는 앱 개발 구문

2019-01-10 46
85

안드로이드 앱 제작 환경설정

| 안드로이드
  • file
2019-01-10 80
84

구글 캘린더 API 설정 방법

| 웹개발
  • file
2019-01-10 38
83

KT KOS, RDS 엑셀 보안문서를 엑셀 일반 문서로 변환하는 방법

| 일반 1
2019-01-09 66
82

Web Station(웹서버) 설정 for SYNOLOGY

| 웹개발
2019-01-09 53
81

USB 지정된 파일을 찾을 수 없습니다

| 일반
  • file
2017-09-23 1862
80

PHP 환경값 재설정 - for QNAP

2017-08-29 608
79

Oracle 12c 설치시 문제 해결 - 리눅스버전

2017-07-01 669
78

redmoon DB 설치

| 일반
  • file
2017-06-06 2415
77

CENTOS 7 초기 설정 가이드

| 웹개발
2016-07-24 2396
76

USB 메모리 인식불량일때

| 일반
2016-07-23 1191
75

"web" 공유 폴더에 있는 내 폴더를 권한없는 액세스로부터 어떻게 보호합니까?

  • file
2016-06-08 704
74

icecast & ices0 in 'synology' ? synices : icestation

2016-06-04 966
73

웹브라우저에서 마우스 클릭시 팝업 광고 문제 해결방법

2016-01-12 363
72

MySQL 사용자 권한 복구

  • file
2015-09-16 532

Board Links

Page Navigation