[Android] WebView에서 다운로드 동작이 안 되는 이유

2025. 9. 17. 16:35·작업 일지
반응형

공지사항 화면을 WebView로 관리하고 있는데, 게시글 중에서 apk를 다운로드할 수 있는 링크를 클릭했는데 아무 이벤트가 동작하지 않는 문제가 생겼다. 신기한 점은 다른 WebView에서 똑같은 url로 같은 화면을 띄우는데, 다운로드 동작이 정상적으로 되었다.

 

해당 부분을 찾아보니 WebView를 사용할 때 WebViewClient를 적용한 경우 WebView의 기본 동작을 WebViewClient의 shouldOverrideUrlLoading()이 대신 수행한다고 한다.

 

그래서 WebViewClient를 적용 안 한 WebView의 경우 다운로드와 같은 특수 MIME 타입은 자동으로 외부 브라우저로 넘겨 처리를 하기 때문에 다운로드가 정상으로 동작한다. 하지만 WebViewCilent를 적용하면 shouldOverrideUrlLoading()이 WebView의 기본 동작을 대신하기 때문에 따로 처리를 하지 않으면 아무 동작을 하지 않는다.

 

해당 내용을 알고 공지사항의 WebView와 다른 WebView에 사용된 WebViewClient를 비교해 봤는데 공지사항 쪽 Client는 url 링크 처리나 다운로드 관련 처리가 없었고, 다른 WebView의 Client는 아래와 같은 처리가 되어 있어서 다운로드를 할 수 있었다.

 

override fun shouldOverrideUrlLoading(
    view: WebView?,
    request: WebResourceRequest?
): Boolean {
    view?.context ?: return false

    try {
        val intent = Intent(Intent.ACTION_VIEW, request?.url)
        view.context?.startActivity(intent)
        return true
    } catch (e: Exception) {
        return false
    }
}
반응형

'작업 일지' 카테고리의 다른 글

[Android] 배송 순서 최적화하기 with TSP  (2) 2025.07.01
[Android][Compose] MaterialCalendarView를 Compose에서 사용하기  (0) 2024.05.19
[Android] 내비게이션의 다음 경로 정보 구하기#2  (0) 2024.03.07
[Android] 내비게이션의 다음 경로 정보 구하기#1  (5) 2024.03.05
[Android][Compose] Scaffold-topBar가 UI를 가리는 현상  (0) 2023.05.31
'작업 일지' 카테고리의 다른 글
  • [Android] 배송 순서 최적화하기 with TSP
  • [Android][Compose] MaterialCalendarView를 Compose에서 사용하기
  • [Android] 내비게이션의 다음 경로 정보 구하기#2
  • [Android] 내비게이션의 다음 경로 정보 구하기#1
O_Gyong
O_Gyong
안드로이드 기술 정리
  • O_Gyong
    O_Gyong's TECH
    O_Gyong
    • 분류 전체보기 (79)
      • Android (56)
        • ADB (4)
        • AddView (1)
        • Architecture (1)
        • Bluetooth (2)
        • BuildConfig (1)
        • Calendar (3)
        • Camera (2)
        • Cipher (1)
        • Compose (1)
        • ConstraintSet (1)
        • DataStore (1)
        • Dialog (1)
        • DrawerLayout (1)
        • Flow (1)
        • Glide (1)
        • MQTT (2)
        • Paging3 (4)
        • Permission (1)
        • SharedPreferences (3)
        • RecyclerView (5)
        • Room (1)
        • Splash (1)
        • TabLayout (2)
        • TextWatcher (1)
        • Update (1)
        • 이슈 처리 (13)
      • Android Studio (5)
      • Firebase (1)
      • Git (3)
      • 작업 일지 (13)
  • 최근 글

  • 인기 글

  • 태그

    recyclerview
    ADB
    Android
    hilt
    BLE
    kizitonwose
    issue
    Pagination
    github
    loading
    Navigation
    firebase
    in-app update
    Room
    Bluetooth
    CalendarView
    CameraX
    Andoird
    Kotlin
    MQTT
    SharedPreferences
    해상도
    compose
    GIT
    paging
    flow
    webview
    TabLayout
    Android Studio
    Paging3
  • 링크

    • GitHub
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • hELLO· Designed By정상우.v4.10.4
O_Gyong
[Android] WebView에서 다운로드 동작이 안 되는 이유
상단으로

티스토리툴바