반응형
'세션 업데이트 중입니다' 페이지가 히스토리에 남아있어 swipe back 작동에 문제가 있었다.
안드로이드는 웹뷰에서 clearHistory() 메서드를 통해 쉽게 히스토리를 삭제할 수 있지만,
iOS의 웹뷰에서는 명시적으로 히스토리를 삭제하는 메서드가 따로 제공되지는 않는다고 한다.
https://stackoverflow.com/questions/46086691/how-to-clear-the-wkbackforwardlist-of-a-wkwebview
webView.backForwardList.perform(Selector(("_removeAllItems")))
다른 방법 아무리 다 써봐도 안되는데 이거는 된다. ㅋㅋㅋㅋ
하지만 이건 Private API 라서 실제로 사용하면 안된다고 한다..
어짜피 화면 이동은 앱에서 라우팅 시키니까 웹에서 swipe back 하는 경우는 거의 없기 때문에
다음과 같이 웹뷰의 back forward navigation gesture 를 false로 변경해주었다.
어짜피 default 값이 false 이기 때문에 해당 코드를 삭제해주어도 됨.
webView.allowsBackForwardNavigationGestures = false
728x90
반응형