[Android] 웹뷰 히스토리 스택 얻는 방법

2021. 3. 23. 10:47·안드로이드
목차
  1. 웹뷰 히스토리 스택 얻는 방법
  2. JAVA
  3. Kotlin

웹뷰 히스토리 스택 얻는 방법

 

 

 웹뷰앱 개발중 Back 키를 눌러도 이전 페이지로 넘어가지 않고

계속 같은 페이지만 불러오는 현상이 발생하였는데,

원인을 몰라 일주일정도를 고민했던 경험이 있었습니다.

 

 PC 웹 페이지 에서 테스트를 하면 문제가 없었으므로,

웹뷰단의 문제라고 생각했고 이러한 생각이 원인을 찾기 더욱 힘들게 했었는데요,

일주일이 넘는 고민 끝에 웹뷰의 백스택이 어떻게 쌓이는지 보았고 원인을 찾게되었습니다.

 

 원인은 웹뷰로 로드되는 URL이 "https://www.~" 형식으로 들어오면 웹뷰가 다시 "https://m.~" 형식의 URL로

리다이렉트 시키고 있었고 그렇기때문에 Back 키를 누르면 다시 "https://www.~" 페이지로 돌아가고 이 페이지는

다시 "https://m.~"페이지로 리다이렉트 시키는 무한루프가 발생했던 것 입니다.

 

 그래서 웹개발자분께 앱에서 페이지를 요청할 시 처음부터 "https://m.~"의 URL로 달라고 요청해서 해결했었습니다.

아래는 제가 사용한 테스트 코드입니다.

JAVA

    // 웹뷰 히스토리 스택 로그 찍기.
    void getBackForwardList(WebView webView) {
        WebBackForwardList currentList = webView.copyBackForwardList();
        int currentSize = currentList.getSize();
        for (int i = 0; i < currentSize; ++i) {
            WebHistoryItem item = currentList.getItemAtIndex(i);
            String url = item.getUrl();
            Log.d(TAG, "The URL at index: " + i + " is " + url);
        }
    }

 

테스트 소스

 

 

Kotlin

	// 웹뷰 히스토리 스택 로그 찍기.
        fun getBackForwardList(webView: WebView) {
            val currentList = webView.copyBackForwardList()
            val currentSize = currentList.size

            for (i in 0 until currentSize) {
                val item = currentList.getItemAtIndex(i)
                val url = item.url
                Log.d(TAG, "The URL at index: $i is $url")
            }
        }

 

테스트소스

(자바와 코틀린의 메소드 선언 위치차이가 있는데 inner class와 nested class의 차이점 입니다)

'안드로이드' 카테고리의 다른 글

[Android] Toast 메시지 중첩 호출 방지하기  (0) 2021.04.05
[Android] 안드로이드 고유 식별자 (unique identifiers)  (0) 2021.03.24
[Android] Release 모드로 빌드하기  (0) 2021.03.22
[Android] 중복 클릭 방지 하기  (0) 2021.03.22
[Android] 데이터 바인딩 적용법 변경사항  (0) 2021.03.10
  1. 웹뷰 히스토리 스택 얻는 방법
  2. JAVA
  3. Kotlin
'안드로이드' 카테고리의 다른 글
  • [Android] Toast 메시지 중첩 호출 방지하기
  • [Android] 안드로이드 고유 식별자 (unique identifiers)
  • [Android] Release 모드로 빌드하기
  • [Android] 중복 클릭 방지 하기
Been
Been
  • Been
    Been
    Been
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 언어 (0)
        • Kotlin (0)
      • 안드로이드 (17)
      • iOS (3)
      • Git (1)
      • 스터디 (39)
        • 알고리즘 문제 풀이 (1)
        • 99클럽 코테 스터디 TIL (38)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    maxWidth
    NSR
    debugRuntimeClasspath
    99클럽
    Coroutines
    리싸이클러뷰
    WRITE EXTERNAL
    안드로이드
    Git
    AndroidID
    깃
    코딩테스트준비
    아이폰
    풀이실패
    개발자취업
    TIL
    IOS
    EditText
    Android
    밑줄제거
    항해99
    nsl
    FragmentStateAdapter
    java
    객체변환
    Androiod
    쓰기권한
    RecyclerView
    언더라인 제거
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Been
[Android] 웹뷰 히스토리 스택 얻는 방법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.