- Kubernetes
- Operating_System
- Unix_System
- Artificial_Intelligence
- Linux
- 리눅스마스터2급
- Univ._Study
- Java
- programmers
- c++
- 2023_1st_Semester
- Image_classification
- Android
- study
- C
- Database_Design
- app
- cloud_computing
- datastructure
- pytorch
- tensorflow
- Baekjoon
- 오블완
- 티스토리챌린지
- 자격증
- Algorithm
- Python
- codingTest
- Personal_Study
- SingleProject
코딩 기록 저장소
[안드로이드] 안드로이드 스튜디오 입문 (WebView) 본문
이번 시간에는 'WebView'에 대해 알아보겠습니다. 'WebView'는 안드로이드 화면에서 자신이 원하는 인터넷 주소를 띄울 수 있습니다. 이것은 활용도가 높고 실무에서도 많이 쓰인다고 합니다. 이번에도 'New Project'를 생성하여 'Empty Activity'로 생성하고 레이아웃으로 가서 WebView를 생성합니다. 이것을 MainActivity.java파일에서 불러서 써야하기 때문에 id도 지정합니다.
완료 되었으면 java파일로 이동해 사용할 수 있도록 WebView 변수 wv와 인터넷 주소를 담을 String형 url 변수를 선언합니다. 전 네이버 주소를 넣었습니다. 그다음 onCreate생명 주기에 코드를 다음과 같이 작성합니다.
wv = (WebView)findViewById(R.id.wv);
이것은 저번 시간에 작성했던 것과 비슷하게 activity_main.xml의 WebView의 id를 가져온것입니다.
그리고 이제 인터넷에 대한 세팅을 해야합니다.
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(url);
wv.setWebChromeClient(new WebChromeClient());
wv.setWebViewClient(new WebViewClientClass());
첫 번째 줄의 코드는 JavaScript 언어의 사용을 허용할지 정하는건데 true로 설정합니다.
두 번째 줄의 코드는 url에 넣은 주소를 load합니다.
세 번째 줄의 코드는 WebView 환경을 구글 크롬이라는 브라우저에 맞춰서 돌리기 위한 코드입니다.
네 번째 줄의 코드는 지금은 오류가 나는데 나중에 해결을 하겠습니다.
이정도만 해도 WebView의 구성은 완료됩니다. 하지만 추가적으로 핸드폰에서 뒤로가기 버튼을 눌렀을때 WebView가 정상적으로 종료되도록 설정해보겠습니다. 이것을 안해도 WebView는 동작할 것입니다.
'컨트롤' + 'O'를 눌러 검색을 통해 'onKeyDown'을 검색하고 엔터를 누르면 onKeyDown()이 생기게 됩니다. 이것은 안드로이드 키를 입력했을때 어떠한 동작을 할지 지정해줄수 있습니다. if문을 이용하여 keyCode가 뒤로가기 키와 일치하고 뒤로갈 수 있다면 wv.goBack()을 실행하라는 의미가 담겨있습니다.
이제 아까 지나쳤던 오류를 해결해보겠습니다. 오류쪽에 커서를 대고 'Alt' + 'Enter'를 누르게 되면 이런식으로 class를 생성할 수 있도록 뜹니다. 그중 아래 사진의 파란색으로 되어 있는 것을 클릭하면 아래에 하나의 class가 생성됩니다.
생성된 class에서 '컨트롤' + 'O'를 눌러 뜨는 창에 'shouldOverrideUrlLoading'을 클릭해줍니다. 이것은 현재 페이지의 url을 읽어올 수 있는 메소드입니다. 이 메소드를 이용해서 새 창을 읽을 수 있고, 특정 페이지에서 특수한 기능을 넣을 수 있습니다. 자주 사용되는 메소드이니 구현을 해놓으면 좋다고 합니다.
실행을 하기 전에 가장 중요한 한가지가 있습니다. manifests에 들어가 인터넷 권한을 설정해야합니다. 'AndroidManifest.xml'에 들어가 코드를 추가합니다.
<uses-permission android:name="android.permission.INTERNET"/>
<application>으로 시작하는 태그 내부에는 다음과 같은 코드를 추가합니다. 안드로이드 9버전이상의 폰부터는 이 코드를 추가해야한다고 합니다.
android:usesCleartextTraffic="true"
다음과 같이 완료하면 이렇게 앱 안에 네이버 화면이 뜨는 것을 확인할 수 있습니다.
참고한 영상은 다음과 같습니다.
안드로이드 앱 개발 강의 #9
* 인터넷 설정 관련 추가 정리 사항
permition 설정이 강화되어서 그냥 인터넷 설정만 갖고는 안된다고 합니다. 그래서 'AndroidManifest.xml'에 들어가 다음의 코드를 추가합니다. 코드를 추가하시면 아래의 코드에 빨간색으로 오류가 생기게 될것입니다.
xml폴더에 새로운 xml파일을 만들어서 아까 오류난 부분의 설정을 해줘야합니다.
파일에 코드를 작성해줍니다.
파일까지 생성해주면 아까 떴던 오류도 사라질 것 입니다.
참고한 글입니다.
https://paddre.tistory.com/213
Android Studio : WebView 구현 오류 문제.
메인 자바는 인터넷 강좌 자료가 여기 저기 있으니 찾아보면 비슷하지요.. =====================mainactivity.java================ public class MainActivity2 extends AppCompatActivity { private WebView wv; private String url = "https
paddre.tistory.com
'개인 공부 > 앱' 카테고리의 다른 글
[안드로이드] 안드로이드 스튜디오 입문 (Navigation Menu 커스텀) (0) | 2023.04.10 |
---|---|
[안드로이드] 안드로이드 스튜디오 AVD 인터넷 연결하기 (0) | 2023.04.06 |
[안드로이드] 안드로이드 스튜디오 입문 (SharedPreferences) (0) | 2023.04.04 |
[안드로이드] 안드로이드 스튜디오 입문 (ListView) (0) | 2023.04.03 |
[안드로이드] 안드로이드 스튜디오 입문 (패키지구조 & 역할) (0) | 2023.04.03 |