BOID

[iOS] WKWebView 기본 메서드 뽀개기! - HoonIOS 본문

IOS 시작기

[iOS] WKWebView 기본 메서드 뽀개기! - HoonIOS

HoonIOS 2021. 5. 11. 10:50
728x90

안녕하세요, HoonIOS입니다.

저번 포스팅에서는 iOS에서 제공하는 웹뷰에 대해 포스팅을 했습니다.

 

<웹뷰(WebView) 뽀개기!>

 

해당 포스팅에서는 웹에 필요한 여러 기능을 직접 구현해줘야 했는데요, 이제 그 기능 구현을 위해서 제공하는 WKWebView 메서드에 대해 알아보겠습니다.

 

꿀팁을 하나 드리자면 WebKit 프레임워크에 속해있는 객체들은 WK가 앞에 붙습니다. WK가 앞에 있으면 오 이거 WebKit 프레임워크에서 사용하는 거구나!라고 생각을 하시면 될꺼같습니다. ㅎ

 

이제 WKWebVIew의 중요, 기본 메서드에 대해 포스팅하겠습니다.

 

 WKWebView 기본 메서드

 

 load(_:)

 

이 메서드는 구현할때 사용했던 메서드로 HTML 파일을 읽어들이 때 사용을 했었습니다. 쉽게 말해 웹페이지를 로드한다고 생각을 하시면 될 거 같습니다.

 

 

공식문서에 나와있는 load 메서드를 보시면 인자값으로 URLRequst를 전달받는 것을 볼 수 있는데 URLRequst객체를 통해 웹페이지를 읽어 들어옵니다.

 

load(_:)는 비동기 메서드로 동시에 다른 로직을 처리할 수 있어 앱이 자연스럽게 진행이 되어가는 장점이 있습니다.

 

 loadHTMLString(_:baseURL:)

 

 

이 메서드는 말 그대로 HTMLString을 읽어오는 메서드로 총 2개의 매개변수를 가집니다.

  • 첫 번째
    - 불러올 웹페이지 url을 읽어오는 것입니다.

  • 두 번째
    - relative URL을 해결할 때 사용되는 기본 URL이라는데... 무슨 말인지 이해가 안 되네요....ㅠㅠ

이 메서드는 직접 웹페이지를 로드해서 웹페이지로 이동을 하거나 개발자가 만든 URL로 이동을 하게 됩니다.

 

 isLoading

 

이것은 메서드가 아니라 프로퍼티인데요 이 웹페이지의 로딩 진행 여부를 확인할 수 있습니다.

이 프로퍼티의 타입은 Bool형으로 true면 아직 로딩, 그렇지 않은 모든 상황은 false로 반환을 하게 됩니다.

 

만약 load를 통해서 웹페이지 로딩이 시작되면 해당 프로퍼티는 true로 설정이 되고 로딩이 끝나면 false로 설정이 됩니다.

즉 이 값은 get형태의 연산 프로퍼티로 개발자가 직접 값을 바꿀 수 없고 상태에 따라 값을 읽어 들일 수 있는 읽기 전용 프로퍼티입니다.

 

 

 stopLoading()

 

웹페이지가 로딩 중일 때 중단을 하고자 사용을 하는 메서드입니다.

 

만약 load 메서드가 실행 중이다가 이 메서드가 호출이 되면 load메서드는 실행이 중단돼버립니다.

 

 

 reload()

 

이 메서드는 현재 웹페이지를 리로딩하게 해주는 동작 메서드로 멈춘 로딩을 다시 시작하게 해주는 메서드입니다.

 

 

 goBack

 

이 메서드는 현재 웹페이지에서 뒤로 가기 버튼의 기능을 하는 메서드로 현재 웹페이지에서 뒤로 보내주게 됩니다.

 

만약 현재 웹페이지에서 뒤로가 아이템이 없다면 nil을 반환하게 되어 아무 동작도 하지를 않습니다.

 

 goForward

 

이 메서드는 현재 웹페이지에서 앞으로 가기 버튼의 기능과 같은 메서드입니다.

 

위 goBack()과 같이 만약 이 페이지가 끝에 있는 마지막 페이지여서 앞으로 갈 아이템이 없다면 nil을 반환하게 돼 아무 동작을 하지 않습니다. 

 

 backForwardList

 

재미있는 프로퍼티를 발견했는데요, 바로 이 backForwardList이비다.

 

backForwardList 타입은 WKBackForwardList클래스 타입으로 이 클래스 타입은 웹뷰에서 방문했던 웹페이지의 리스트를 관리하는 객체입니다.

 

따라서 방문했던 웹페이지를 가기 위해서 해당 프로퍼티를 사용하면 될 것 같습니다.

 

 

 

 

이렇게 간단한 프레임워크에서 사용하는 프로퍼티 메서드에 대해 포스팅을 해봤습니다. WebKit은 프레임워크 메서드뿐만 아니라 델리게이트 메서드가 있는데요

 

해당 델리게이트 메서드인 WKNavigationDelegate와 WKUIDelegate를 한번 포스팅해보겠습니다.

반응형
Comments