swift WebView 그리고 ActivityIndicatorView

 

앱에서 여러 가지의 화면을 구성할 때 UI나 그 내용을 직접 만들어도 되지만 공지사항처럼 자주 업데이트를 해야 하는 것 등.... 필요에 따라서는 웹(서버)에 html 파일을 만들어서 연결을 해야 할 때도 있을 것 같다. 그래서 컴퓨터에 구축해 놓은 local 서버에 html 파일을 하나 넣은 후 swift에에서 WebView를 이용해서 출력하는 과정을 정리해 놓으려고 한다.

 

우선 서버에 간단한 html 파일을 하나 만들어서 넣는다.

html파일

현재 컴퓨터의 LocalServer 폴더에 하나의 문자를 출력하는 noti.html 파일을 추가했다. 이제 xcode에서 WebView를 이용해서 출력을 해보자.

 

webview 종류

webView는 두 가지가 있는데 난 WebKin View를 이용했다. 아직 두 녀석의 특성을 모두 알지는 못하지만 자바스크립트가 작동하도록 하려면 Webkit View를 이용하는 게 유리하다는 얄팍한 지식을 어디서 본 거 같아서 선택을 했다. (WebView에서도 자바스크립트를 작동할 수 있는지는 아직 잘 모르겠다. ^^ㅎ)

 

 

이제 swift 파일에서 Webkit View를 추가하고 몇 가지 속성을 설정해주자.

소스코드

먼저 WebKit을 import한 후에 webView 변수에 저장을 했다. 그리고 자바스크립트가 작동하도록 하기 우해서 WKPreferences를 불러와서 javaScriptEnabled의 값을 true로 설정했으며 localhost의 html파일을 url로 지정한 후 캐시를 지우도록 했다. 그리고 웹 페이지가 열리는 1초 미만의 시간이라도 페이지가 열리고 있음을 알리기 위해서 UIActivityIndicatorView를 가져와서 프로그레스를 표시하도록 했으며 webView가 모두 열리고 나면 진행을 멈추도록 했다.

 

상황에 따라서는 다양한 설정이 추가되야 할 테지만 오늘은 일단 webView에서 서버에 저장된 html 파일을 열어보는 과정만 정리하면서 마무리한다.

Posted by 차케요