package com.example.webviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
WebView wView; // webView
ProgressBar pBar; // loading
EditText urlEt; // input for url
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wView = findViewById(R.id.wView);
pBar = findViewById(R.id.pBar);
pBar.setVisibility(View.GONE); // hide loading
initWebView(); // init webView
urlEt = findViewById(R.id.urlEt);
urlEt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER){ // 키보드의 엔터키를 눌러서
wView.loadUrl("http://"+urlEt.getText().toString()+""); // connect url
}
return false;
}
});
}
// conf webView
public void initWebView(){
// 1. Connect
wView.setWebViewClient(new WebViewClient(){
@Override // 1) Loading
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
pBar.setVisibility(View.VISIBLE); //Show Loading
}
@Override // 2) Start
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
pBar.setVisibility(View.GONE); //Hide Loading
}
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url=request.getUrl().toString();
view.loadUrl(url);
return true;
}
});
// 2. WebSettings
WebSettings ws = wView.getSettings();
ws.setJavaScriptEnabled(true); // Javascript permit
wView.setWebViewClient(new WebViewClient());
wView.getSettings().setUseWideViewPort(true);
wView.getSettings().setLoadWithOverviewMode(true);
wView.getSettings().setDomStorageEnabled(true);
// 3. start url
wView.loadUrl("https://www.naver.com");
}
// back event
@Override
public void onBackPressed() {
if(wView.canGoBack()){ // if IS BACK PAGE
wView.goBack(); // GO BACK
}else{
super.onBackPressed(); // IF NOT BACK PAGE -> EXIT APPLICATION
}
}
}