마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Android 시스템 WebView 에서 history.back()

+3 추천

웹뷰 기반으로 하이브리드 앱을 개발하였습니다.

 

며칠 전 'Android 시스템 WebView'가 자동으로 업데이트 된 후에,
웹사이트 내에 뒤로가기 버튼(history.back)이 눌러도 반응이 없습니다.

 

혹시 원인이나 해결책을 알 수 있을까요..

JMLJML (290 포인트) 님이 2017년 12월 13일 질문
JMLJML님이 2017년 12월 14일 수정

4개의 답변

0 추천
1. 새창으로 열고있다.

2.백스택을 날려버리고 있다

3.자바스크립트 구현이 잘못되었다

//정확한 답변을 원하시면 사이트 링크를 알려주세요
익명사용자 님이 2017년 12월 13일 답변
감사합니다.

https://play.google.com/store/apps/details?id=com.tpirates.tpiratesapp

살펴봐주시면 정말 큰 도움 되겠습니다!
헐..10만 다운로드 앱 개발자 분이시라니...영광입니다.
제폰으로 본 결과 별 이상이 없고.
리뷰쪽을 보아도 이상하다는 글이 없는데..
이상 현상이 일어나는 폰의 기종이 어떻게 되시나요?
OS 6.0.1 / SM-N910K(노트4) 환경이고
Android 시스템 WebView는 12/5경 배포된 버전 63.0.3239.83 입니다.

혹 같은 버전의 웹뷰를 쓰시는데도 여러 본문 화면 좌측상단의 back 버튼이 잘 동작하시는지요?
저는 웹뷰 업데이트 된 것을 제거하면 잘 동작하고, 다시 업데이트 하면 안되고 있습니다.
갤럭시 탭3 최신버전으로 구동결과
해당앱에서 동일현상 나오네요.
다른 하이브리드앱은 정상 작동하네요
특정 URL을 지정하면 옮겨지지만, javascript:history.back()이 동작을 안하네요.
으흠 웹뷰에서 뭐가 달라진 것일까요.
현재 크롬&웹뷰 63 버전은 버그로 인해 내려간 상태입니다. 하지만 이미 업데이트 한 유저들은 ㅠㅠ 카드사들도 현재 비상이고요, 해당 버전으로 접속 한 사용자들에게 팝업으로 해당 설명하고 웹뷰 업데이트 삭제를 안내 중이네요~
밤사이 버전이 63.0.3239.83 -> 63.0.3239.107 로 업데이트 되었네요.
그렇지만 history.back()이 동작하지 않는 것은 마찬가지네요. 다른 분들은 어떠신지요?
저도 같은 현상으로 고생중인데..ㅠㅜ
새로 업데이트 떠서 받았는데도 같은 현상이 계속되네요..ㅠㅜ
지금 설치된 크롬 웹뷰 버전 확인방법이 어떻게되나요?
저도 같은 현상인데 ㅠㅜ
구글 플레이 > Android 시스템 Web View > 자세히 알아보기에서 확인 가능합니다.
0 추천
a 태그에 href로 연결된 페이지는 history.back이 안되고

submit을 연결된 페이지에서만 history.back가 되는듯 합니다.
익명사용자 님이 2017년 12월 14일 답변
0 추천
현재 테스트 후에 적습니다..

위에 적힌 댓글 분들처럼 시스템 웹뷰관련 문제가 맞는 것으로 보입니다.

 

정상적으로 작동하는 폰이있었는데, 업데이트가 꺼져있어서 플레이스토어에서 웹뷰 업데이트를 하니 히스토리가 정상적으로 쌓이지 않아 뒤로가기가 되지 않는것으로 확인했습니다.

 

그리고 설정으로 들어가 해당 앱의 업데이트를 삭제하니 다시 제대로 작동하는것을 확인했구요. 다시 또 업데이트했더니 안되더라구요.

 

테스팅한 웹뷰 버전은 630.3239.107 업데이트 날짜 12/13입니다.
겸군님 (1,900 포인트) 님이 2017년 12월 14일 답변
몇일 고민하다 해결한 방법 올려드립니다.
웹뷰에서 클릭시 이벤트를 받아오기 위한 webviewclient 에서 shouldOverrideUrlLoading  이벤트를 보면 return true 를 return false로 변경해서 테스트해보세요. return true일 경우 back 버튼에 대한 로직을 직접코딩해야 하나 false일 경우 시스템 브라우져에서 제어하도록 하는 것이므로
false로 설정하면 되었던 기억이 납니다.
지금 코딩된 컴퓨터가 없어서 작성이 어려우니 amplesoft@daum.net로 문의주시면 코딩보내드릴께요..
0 추천
(해결책을 구할 수 있도록 이 글의 질문을 추천해서 위로 좀 올려주세요~!)
JMLJML (290 포인트) 님이 2017년 12월 14일 답변
저는 해결 방법이 다른데 있었는데 해결 되셨나요
어떤 방법으로 해결하셨나요??
http://g-y-e-o-m.tistory.com/81
return false로 줬습니다.
저도 카드사 스키마 처리외에 return false; 로 줘서 해결하였습니다.
...