안드로이드

[안드로이드] 1. WebView 웹뷰- 띄우기 (Kotlin)

디벨로펄 2023. 3. 11.
반응형

참고 : 안드로이드 developers

https://developer.android.com/guide/webapps?hl=ko 

 

웹 기반 콘텐츠  |  Android 개발자  |  Android Developers

웹 기반 콘텐츠 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 그림 1. 사용자에게 웹 콘텐츠를 제공할 수 있는 두 가지 방법은 기존 웹브라우저에서 제공하

developer.android.com

 

◇ 웹 컨텐츠

웹 컨텐츠를 보여주는 두가지 방법 1. 브라우저 어플, 2. 본인 앱 내 webview

웹뷰 : UI를 더 세부적으로 제어할 수 있다.

웹페이지를 Layout에 표시할 수 있도록 해준다.

public class WebView
extends AbsoluteLayout implements ViewTreeObserver.OnGlobalFocusChangeListener,
				ViewGroup.OnHierarchyChangeListener

java.lang.Object
   ↳	android.view.View
 	   ↳	android.view.ViewGroup
 	 	   ↳	android.widget.AbsoluteLayout
 	 	 	   ↳	android.webkit.WebView

웹 페이지를 보여주는 View

안드로이드와 상호작용이 가능하다.

WebVeiw의 대안

1. 사용자를 모바일 사이트로 보내려면 PWA(Progressive Web App)를 빌드한다.

2. 타사 웹 컨텐츠 표시하려면 설치된 웹브라우저(브라우저 어플)에 인텐트를 보낸다.

3. 앱에서 브라우저를 열지 않도록 방지하거나 브라우저의 UI를 맞춤 설정하려면 Chrome 맞춤 탭을 사용한다.

 

 

WebView 사용 방법

0. manifest파일에 Internet 권한 요청(인터넷 권한이 필요하다)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.INTERNET" />
    ....
</manifest>

1. Activity Layout에 WebView를 추가합니다.

    <WebView
        android:id="@+id/webview"
        android:layout_width="410dp"
        android:layout_height="550dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

 

2. 웹 페이지 로드 : loadUrl()

Activity 내의 onCreate에서 활용했다.

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // inflate : xml의 뷰를 객체화 해준다.
        val binding=ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        val myWebView= binding.webview
        myWebView.loadUrl("https://www.naver.com")

        binding.btnChrome.setOnClickListener {
            println("chrome")
            myWebView.loadUrl("https://www.google.com")
        }
        binding.btnYoutube.setOnClickListener {
            println("youtube")
            myWebView.loadUrl("https://www.youtube.com")
        }
    }

1차 결과물. chrome을 선택하면 아래와 같이 보일 것이다.

하지만, naver나 youtube의 경우 어플로 자동으로 넘어가는 것을 볼 수 있다.

WebView 맞춤설정

- WebViewClient

- WebSettings

반응형

댓글