Android

WebView 만들기

최데브 2020. 6. 29. 01:28
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private WebView webView;
    private  String url= "띄우고 싶은 웹주소";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView=(WebView)findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true); //뒙에서의 자바 스크립트를 허용할것이냐?
        webView.loadUrl(url);
        webView.setWebChromeClient(new WebChromeClient());
        webView.setWebViewClient(new WebViewClientClass());
    }

    @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 WebViewClientClass extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            //shouldOverrideUrlLoading 현재 페이지에 url 을 불러오는 코드
            //이게 없으면 새로운 주소창이 뜨면서 화면이 나온다
            //근데 이게 있으면 앱 화면에서 바로 웹화면이 뜨게 된다.
            view.loadUrl(url);
            return true;
        }
    }
}

 

*참고 

url 이 https 가 아닌 http 로 시작하는 주소라면  err_cleartext_not_permitted 라는 오류가 나면서 안되는데 

이때는 메니페스트 파일에서 application 태그안에

android:usesCleartextTraffic="true" 를 추가하면 작동이된다.

 

반응형