일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 안드로이드 갤러리 접근
- Kotlin FCM
- Kotlin
- Android ProgressBar
- DataBinding
- 안드로이드
- Android WebView
- OkHttp Interceptor
- 영어독립365
- 안드로이드 카카오 로그인
- 안드로이드 fcm
- Android Navigation
- 카카오 알고리즘
- Android 12
- 프로그래머스 알고리즘
- MVP Architecture
- 알고리즘 자바
- Android DataBinding
- 습관만들기
- Android 12 대응
- WebView
- 영어공부
- Android
- android recyclerview
- 66챌린지
- Android Jetpack
- Android Interceptor
- scope function
- Java
- Android ViewPager2
- Today
- Total
Developer Geek
[Android] WebView란 본문
WebView
정의
웹뷰(WebView)란 프레임워크에 내장된 웹 브라우저 컴포넌트로 뷰(View)의 형태로 앱에 임베딩하는 것을 말한다.
즉, WebView는 앱 내에 웹 브라우저를 넣는 것이다.
웹 페이지를 보기 위해서 혹은 앱 안에서 HTML을 호출하여 앱을 구현하는 하이브리드 형태의 애을 개발하는데에도 많이 사용된다.
하이브리드 앱
👍 장점
하이브리드 앱은 안드로이드 네이티브 앱 개발에 비해서 개발이 비교적 쉽다.
특히 기기간의 호환성을 해결하기가 상대적으로 편하다.
타 웹 사이트 링크로 가는 기능등을 지원하기 위해서 많이 사용된다.
👎 단점
HTML 기반인 만큼 상대적으로 반응성이 약하고, 애니메이션등의 다양한 UI 효과를 넣기 어렵다.
OS에 맞게 일부 기능들을 제외하고 작게 만든 웹 브라우저로 HTML5 호환성 등 기능의 제약을 많이 가지고 있다.
개발 참고 사항
인터넷 접근 권한 허용
AndroidManifest.xml
파일에서 manifest
태그 안에 <uses-permission android:name="android.permission.INTERNET" />
를 추가해야 앱에서 인터넷을 통신을 사용할 수 있다.
에러: ERR_CLEARTEXT_NOT_PERMITTED
원인
웹뷰가 실행되었지만, ERR_CLEARTEXT_NOT_PERMITTED
와 같은 에러가 발생할 때가 있다. 그 이유는 URL을 통해서 웹 페이지를 로드하는데 https
가 아닌 http
프로토콜을 사용하여 보안이 취약하기 때문이다.
해결방법
이를 해결하기 위해서는 AndroidManifest.xml
파일에서 application
태그 속성으로 android:usesCleartextTraffic="true"
를 추가해야 한다.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.SearchDeliveryInfoApplication"
android:usesCleartextTraffic="true">
에러: 앱이 아닌 기본 웹 어플리케이션에서 열리는 웹 페이지
해결방법
내가 만든 WebView의 속성 값 중 webViewClient를 안드로이드 SDK에서 제공하는 WebViewClient로 덮어씌운다.
binding.webView.webViewClient = WebViewClient()
...
binding.webView.loadUrl("https://google.com")
에러: 웹뷰에서 보여지는 웹 페이지의 버튼 작동 X
원인
Android
에서는 기본적으로 보안을 위해 JavaScript
를 허용하지 않는다.
해결방법
WebView를 초기화 할 때, JavaScript
사용을 허용한다.
binding.webView.settings.javaScriptEnabled = true
질문과 잘못된 점에 대해 말씀해주시는 건 언제나 환영입니다.
zero5.two4@gmail.com
'안드로이드 > View' 카테고리의 다른 글
[Android] ViewPager2 and TabLayout Sample in Kotlin (0) | 2022.07.28 |
---|---|
[Android] 달력 예제 in Kotlin (0) | 2022.07.08 |
안드로이드 막대 프로그레스바 구현 예제 in Kotlin (0) | 2022.06.25 |
안드로이드 원형 프로그레스바 in Kotlin (0) | 2022.06.20 |
안드로이드 프로그래스바 (0) | 2022.06.19 |