Kotlin

[Kotlin] 웹뷰(WebView) 사용 방법

cob 2022. 12. 20. 09:03

 

 

WebView

 

 

 

 

WebView란?
 앱에서 웹페이지 제공하려고 하는 경우 WebView를 사용하게 된다. WebView클래스는
Android의 View 클래스의 확장으로, 웹페이지를 활동 레이아웃의 일부로 표시할 수 있게 해 주고,
탐색 컨트롤이나 주소 표시줄 등 완전히 개발된 웹브라우저의 기능은 전혀 포함되어 있지 않는다. 
앱 내에 웹페이지를 넣어준다고 생각하면 된다.

 

 

1. 사용 방법

1-1) 인터넷 퍼미션 설정 (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kang.study">

	<uses-permission android:name="android.permission.INTERNET"/> //권한 주기
	
	<application
			....
		android:usesCleartextTraffic="true"  // 서버 통신시 필요
			...
	</application>
</manifest>
  • 인터넷을 이용하기 위해 퍼미션 (권한) 주기
  • app > manifests > AndroidManifest.xml 수정

 

 

1-2) layout에 WebView 추가

WebView 레이아웃

 

 

 

1-3) Activity 수정

웹 이랑 앱은 다르기 때문에 세팅이 필요
class webActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
		...
		webView.settings.javaScriptEnabled = true // 자바스크립트 허용
		
		/*   웹뷰에서 새 창이 뜨지 않도록 방지     */
		webView.webViewClient = WebViewClient()      // 이 두개는 필수 설정
    webView.webChromeClient = WebChromeClient()
		/*   웹뷰에서 새 창이 뜨지 않도록 방지     */
		
		webView.loadUrl("https://www.naver.com") // 링크 주소 laod
		
	}
	  override fun onBackPressed() {
			...
	}
}
  • 앱에서 뒤로가기뒤로 가기 클릭 시 앱이 꺼지는데 웹뷰에서 뒤로 가기 설정이 필요하다.

뒤로 가기 적용

  • CTRL + O > onBackPressed 선택
// back 버튼 이벤튼
override fun onBackPressed() {
    if(webView.canGoBack()){
        //웹사이트에서 뒤로갈 페이지가 존재 한다면 수행
        webView.goBack() // 웹사이트 뒤로가기

    } else {
        super.onBackPressed() // 본래의 백버튼 수행(안드로이드)
    }
}

 

반응형