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" 를 추가하면 작동이된다.