ios

WKWebView

junsmustLim 2020. 3. 20. 01:01

안녕하세요. 

 

저는 ios 개발을 시작하는 개발자로서 문서를 중심으로 보려고 합니다. 

 

이제부터 제가 읽은 애플 문서를 설명하려고 합니다. 

오늘은 WKWebView에 대해서 이야

WKWebView의 오브젝트를 사용하여 웹 컨텐츠를 보여주는 것이다. 

 

 

Starting in iOS 8.0 and OS X 10.10, use WKWebView to add web content to your app. Do not use UIWebView or WebView.

중요한 점은, IOS 8.0과 OS X 10.10를 사용해야 하며, WKWebView를 사용하여 당신의 앱에 웹 컨텐츠를 추가할 수 있다고 합니다. 

단, UIWebView 또는  WebView를 사용하지 말라고 합니다.( 그 이유는, deprecated 되었기 때문이죠)

 

To do so, create a WKWebView object, set it as the view, and send it a request to load web content.

 

웹 컨텐츠를 앱에 보여주기 위해서는 몇 가지 단계가 필요합니다.

 

1. WKWebView의 오브젝트를 생성

2. request를 보낸다...

 

이렇게 보면 굉장히 간단하고 쉬어보이죠?

 

WKWebView에서 httpBody 컨텐츠로 POST 요청을 할 수 있다고 합니다. 

 

위에서 설명하던 몇 가지 단계는 너무 이해하시기 조촐하죠?

 

더 자세하게 설명해보겠습니다.~.~

 

1. init(frame : configuration)을 사용하여 WKWebView의 오브젝트를 생성합니다. 

2. web content를 load 하기 위해서  loadHTMLString(_:baseURL:) method를 사용합니다. 

loadHTMLString(_:baseURL:) 는  baseURL을  로컬 HTML을 로딩하는 용도입니다. 

또는 

 load(_:) method를 사용하여 웹 컨텐츠를 로딩할 수 있습니다. 

3. 로딩을 멈추려면 stopLoading() method

4. 웹 뷰가 로딩의 프로세스인지 아닌지 판단하기 위해,  WKWebView의  isLoading property를 사용하면 된다.

5. 웹 뷰 오브젝트에 delegate를 설정합니다. ( 웹 컨텐츠의 로딩을 추적하려면  WKUiDelegate 프로토콜을 준수해야한다고 합니다.)

 

 

 

 

 

 

 

 

테스트 시, 

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>

info.list에  <dict> </dict> 안에 위 문구를 추가해줘야 http 통신을 할 수 있다.