일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UML
- dovecot
- C#
- WebView
- curl
- php 취약점
- 자바스크립트
- chart.js
- 안드로이드 gcm
- 안드로이드 푸쉬
- roundcube
- 우분투
- javascript
- 안드로이드
- mysql
- 폼메일
- 안드로이드 푸시
- Mail Server
- PHP
- 설치
- soundpool
- xe
- FCM
- android 효과음
- not working
- C# IO
- php 시큐어코딩
- Android
- html5
- 자동 생성
- Today
- Total
그러냐
[Android][WebView] ERR_CLEARTEXT_NOT_PERMITTED 오류 본문
Android OS 9 Pie 버전부터는 WebView에 일반적인 텍스트로 "http://" URL 접근이 막혔습니다.
(tagetSdkVersion 28 이상일 경우)
증상 : WebView에서 Webpage not available
, net::ERR_CLEARTEXT_NOT_PERMITTED
오류 발생
참고 : https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted
검색해보니 이를 수정하기 위해서는 3가지 방법이 있습니다.
(https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted)
res/xml/network_security_config.xml 추가
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">ebookfrenzy.com</domain> </domain-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">amazon.com</domain> </domain-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">nytimes.com</domain> </domain-config> </network-security-config>
위 파일 추가 후 AndroidManifest.xml 에서 application에
networkSecurityConfig
속성 추가<?xml version="1.0" encoding="utf-8"?> <manifest ...> ... <application ... android:networkSecurityConfig="@xml/network_security_config"
이 방법은 network_security_config.xml 파일에 앱 내 텍스트로 사용할 URL들이 정의되어 있어야 함.
cleartextTrafficPermitted
속성이 true일 경우 동작을 함.
AndroidManifest.xml 에서 application 의
usesClearTextTraffic
속성 수정<?xml version="1.0" encoding="utf-8"?> <manifest ...> ... <application ... android:usesCleartextTraffic="true"
이 방법은 텍스트 URL 을 무조건 허용하게 됨.
Android Manifest.xml에서 manifet의
targetSandboxVersion
속성을 사용 중일 경우 관련 내용 : https://developer.android.com/guide/topics/manifest/manifest-element#targetSandboxVersion위 관련 내용에 따르면 속성 값이 높을수록 보안 수준이 높아지며, 2일 경우
usesCleartextTraffic
의 기본 값이 false가 됨. 그래서 이 속성의 값을 1로 변경해야함. 다만 Android 8.0 (API 26) 이상을 타겟팅하는 Android Instant Apps의 경우 이 속성을 2로 설정해야 함.<?xml version="1.0" encoding="utf-8"?> <manifest android:targetSandboxVersion="1"> ...
출처 : https://nobase-dev.tistory.com/81
'android' 카테고리의 다른 글
안드로이드 웹뷰 모바일 뷰 로드 (0) | 2019.02.20 |
---|---|
Cannot find a version of 'com.android.support:support-annotations' that satisfies the version constraints (0) | 2019.02.13 |
안드로이드 외부 sdcard 경로 가져오기 (1) | 2018.12.20 |
안드로이드 마쉬멜로우 버전 이상에서 권한처리하기. (0) | 2018.12.20 |
adaptive icon background 투명 배경 (0) | 2018.12.03 |