적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

카테고리 없음

웹뷰 히스토리 삭제 backForwardList

hongssup_ 2024. 10. 10. 18:27
반응형

 

'세션 업데이트 중입니다' 페이지가 히스토리에 남아있어 swipe back 작동에 문제가 있었다.

 

안드로이드는 웹뷰에서 clearHistory() 메서드를 통해 쉽게 히스토리를 삭제할 수 있지만,

iOS의 웹뷰에서는 명시적으로 히스토리를 삭제하는 메서드가 따로 제공되지는 않는다고 한다. 

 

 

https://stackoverflow.com/questions/46086691/how-to-clear-the-wkbackforwardlist-of-a-wkwebview

 

How to clear the WKBackForwardList of a WKWebView?

It appears that the backForwardList of a WKWebView is readonly, but I've seen people so some pretty magical things to get around this. I need to figure out some way of clearing the history of a WKW...

stackoverflow.com

 

webView.backForwardList.perform(Selector(("_removeAllItems")))

다른 방법 아무리 다 써봐도 안되는데 이거는 된다. ㅋㅋㅋㅋ

하지만 이건 Private API 라서 실제로 사용하면 안된다고 한다..

 

어짜피 화면 이동은 앱에서 라우팅 시키니까 웹에서 swipe back 하는 경우는 거의 없기 때문에

다음과 같이 웹뷰의 back forward navigation gesture 를 false로 변경해주었다. 

어짜피 default 값이 false 이기 때문에 해당 코드를 삭제해주어도 됨.

webView.allowsBackForwardNavigationGestures = false
728x90
반응형