BOID
[iOS] WKWebView 기본 메서드 뽀개기! - HoonIOS 본문
안녕하세요, HoonIOS입니다.
저번 포스팅에서는 iOS에서 제공하는 웹뷰에 대해 포스팅을 했습니다.
해당 포스팅에서는 웹에 필요한 여러 기능을 직접 구현해줘야 했는데요, 이제 그 기능 구현을 위해서 제공하는 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를 한번 포스팅해보겠습니다.
'IOS 시작기' 카테고리의 다른 글
[iOS] 버튼을 눌렀을때 WKWebView 띄워버리기! - HoonIOS (0) | 2021.05.13 |
---|---|
[iOS] 웹뷰의 델리게이트 메서드 ( WKNavigationDelegate & WKUIDelegate) - HoonIOS (0) | 2021.05.12 |
[iOS] 웹뷰(WebView) 뽀개기! (2) | 2021.05.11 |
[iOS] 쌩 뷰컨트롤러에서 테이블 뷰 띄우기 (0) | 2021.05.10 |
[iOS] 비동기와 동기에 대해 - HoonIOS (0) | 2021.05.10 |