Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- project flow
- 프로그래머스
- 안드로이드
- gestureRecognizers
- Could not create service of type FileAccessTimeJournal using
- Flutter SDK
- 크롬개발자도구
- StringUtils.isBlank
- 플러터
- fullBackupContent
- TCP/IP모델
- carousel slider
- 두 수의 나눗셈
- Set ID
- 플루터
- allowBackup
- 에러
- StringUtils.isEmpty
- freezed
- Flutter
- VerticalMultiDragGestureRecognizer
- Chrome Developer Tools
- runSpacing
- TextFormField
- foreground
- 웹뷰
- not working
- 앱
- 안보내짐
- 입력 커서
Archives
- Today
- Total
흰오목눈이야 개발하자
안드로이드 웹뷰 디버깅하기 (Android WebView Debugging) 본문
안드로이드 앱에서 웹뷰를 구현하였으나 웹뷰 내에서 발생하는 버그를 분석하거나 디버깅하는 것이 되지 않아 불편함을 겪었다면 Chrome Developer Tools(크롬 디벨로퍼 툴, 크롬 개발자 도구 = DevTools)를 이용하여 해결할 수 있다.
전제 조건
- 안드로이드 킷캣 (Android 4.4, KitKat) 이상만 가능
해야 할 일
- 웹 → chrome://inspect를 통해 디버그를 지원하는 웹뷰 목록에 접근한다.
- 안드로이드 디바이스 → 디버깅 모드를 활성화한다. (참고: https://developer.android.com/studio/debug/dev-options?hl=ko)
- 안드로이드 코드 → 아래의 디버깅을 위한 WebView 구성 참고
디버깅을 위한 WebView 구성
디버깅 모드를 설정하기 위해서 웹뷰 관련 코드에서 setWebContentsDebuggingEnabled 를 호출하여 true로 설정해주면 된다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 안드로이드 버전 확인, 킷캣 이상 가능
WebView.setWebContentsDebuggingEnabled(true); // 디버그 모드 설정
}
디버깅을 위한 WebView 구성 (응용, 디버그 모드에서만 설정)
웹뷰 디버깅은 안드로이드 매니페스트(Manifest)의 플래그(flag) 상태에 영향을 받지 않는다.
그냥 setWebContentsDebuggingEnabled 메소드만 호출하여 설정하면 개발, 릴리즈 모드에 모두 디버깅이 가능해질 수 도 있다.
따라서, 아래의 조건을 추가하면 debuggable인 경우에만 웹뷰 디버깅을 활성화가 가능하다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 안드로이드 버전 확인, 킷캣 이상 가능
if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) { // 디버그 모드 확인
WebView.setWebContentsDebuggingEnabled(true); // 디버그 모드 설정
}
}
테스트
위의 코드를 추가하였으면 앱을 실행하고 앱에서 해당 웹뷰에 접근한다.
그다음, 웹에서는 크롬 개발자 도구의 Devices 메뉴에서 해당 웹뷰의 디버깅을 할 수 있다.
크롬 개발자 도구에서 WebView를 볼 수 없는 경우
- 앱에 WebView 디버깅이 활성화되어 있는지 확인한다.
- 기기에서 디버그 하려는 WebView로 앱을 연다. 그런 다음 chrome://inspect 페이지를 새로 고친다. (F5)
참고)
Remote debugging WebViews (https://developer.chrome.com/docs/devtools/remote-debugging/webviews/)
'안드로이드 > DevLog' 카테고리의 다른 글
[Android] Could not create service of type FileAccessTimeJournal using 에러 해결 (0) | 2022.11.09 |
---|---|
20200511 Git Bash (터미널) 유저(계정) 변경 (0) | 2020.05.11 |
20200426 Material Design (0) | 2020.04.26 |
20200406 DevLog: Slider Button(슬라이더 버튼) 흐리게 만들기 (0) | 2020.04.06 |
20200327 DevLog: (kotlin) lateinit, getText, Listview (0) | 2020.03.27 |