안녕하세요?
WebView를 사용해서 앱에서 웹서버에 있는 페이지를 표시하려고 하는데,
안드로이드에서는 웹서버에서 변경한 내용이 바로 반영되고요.
IOS에서는 WebView로 로딩한 웹페이지가 기기에 캐시되는지, 한번 로딩되면 웹서버에서 웹페이지를 변경해도 WebView에는 반영이 안됩니다.
webview.reload(), webview.repaint()는 효과가 없었습니다.
IOS 환경에서 WebView에 캐시된 페이지를 지우는 방법이 있는지요?
또는 이 현상을 바로잡을 수 있는 다른 방법이 있는지 궁금합니다.
그럼 맛있는 저녁식사 하세요~
웹앱쪽에서는 보통 이런걸 방지하기 위해서 쓸데없는 파라미터를 붙입니다.
****.js?201601270101001 뭐 이런 타임스탬프를 하나 붙여버리면 캐싱이 되지 않습니다.
1개의 좋아요
속시원한 도움 말씀 감사드립니다.
매번 새로운 페이지를 로딩하는 좋은 방법이네요~
제 경우는 자주 갱신해야 되는 웹페이지가 아니라서 적절할 것 같습니다만,
자주 갱신하는 경우에는 새로운 URL로 캐시가 계속 누적되지 않을까 싶네요.
그럼 즐거운 오후 되세요~
네. 그래서 세션의 생성시간을 박는다거나, 타임 스탬프를 고정값으로 박아놓고 수동으로 변경한다거나 하는 식으로 사용합니다. (원시적이죠…)
1개의 좋아요
브라우저가 캐쉬하는 것과 관련해서는 서버 설정 혹은 response의 head도 영향을 미칩니다.
그 모든것을 무시하고 캐쉬를 날리는게 바로 동우님이 말씀해주신 방법 ^^
1개의 좋아요
webview에서 url로 HTML 파일 호출할 때는 그렇게 호출하는데…문제는 html에서 불러오는 js 스크립트 파일은 스태틱하게 박혀
박혀있는데 어떤식으로 처리하지요?
.js 파일 수정시 반영이 안되서 미챠버리겠네요. 어흑.
html안에 script= 쓸때 js뒤에 파라미터를 붙여요.
<script src=*******.js?20160406150321>
이렇게요…
아…js 바뀔때마다 html에서 수동으로 숫자를 바꿔서 붙여주면되겠구나…크…
난 저걸 어떻게 프로그래밍적으로 숫자를 생성해서 붙일 수 있을까 싶어서… php를 써야하나? 생각했네…ㅋㅋ