자바 웹 개발자가 될거야/JAVA
[Android] 안드로이드 웹뷰 구현하기
whitz
2021. 12. 27. 12:33
< 웹 뷰 >
① main.xml
- EditText로 사이트 주소 입력받음
- 이동 버튼과 이전 버튼 존재
- WebView를 이용하여 인터넷 웹 뷰를 보여줌
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이동"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이전"/>
</LinearLayout>
<WebView
android:id="@+id/wv1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
② androidManifest.xml
- app 폴더 아래 manifests 폴더에 AndroidManifest.xml 을 열어서 인터넷을 허용해줘야함
- uses-permission 이용
- <application> 태그 안에 usesCleartextTraffic 추가
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:usesCleartextTraffic="true"
/>
- 테스트 실패하면 프로젝트를 완전히 삭제 후 다시 실행해보시길
③ .java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText et1 = findViewById(R.id.et1);
Button btn1 = findViewById(R.id.btn1);
Button btn2 = findViewById(R.id.btn2);
WebView wv1 = findViewById(R.id.wv1);
wv1.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
et1.setText(wv1.getUrl());
}
});
wv1.loadUrl("https://m.daum.net");
- onPageStarted에서는 해당 사이트 주소를 EditText에 보여줌
- 웹뷰.loadUrl("사이트 주소");
· 웹뷰의 시작페이지 주소 지정함
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wv1.loadUrl(et1.getText().toString());
}
});
- EditText에 주소 입력 후 이동버튼(btn1) 누르면 해당 사이트로 이동
· 웹뷰.loadUrl() 사용하되 getText() 사용함
- 크롬으로 넘어가지 않고 첫번째사진처럼 바로 보여줌
wv1.setWebViewClient(new WebViewClient(){});
- 이전 버튼(btn2) 누르면 이전 페이지로 돌아감
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wv1.goBack();
}
});