본문 바로가기
개발노트/iOS

[SWIFT] WebView 생성하기

by 전지적진영시점 2023. 2. 17.
반응형

안녕하세요 이번 포스팅에서는 Xcode 프로젝트에서

swift로 webView를 하나 만들어볼까 합니다

 

WKWebView

WKWebView는 iOS dev 문서에 따르면 "인앱 브라우저와 같은 대화형 웹 콘텐츠를 표시하는 개체입니다." 라고 합니다.

웹 콘텐츠를 앱 UI에서 보여주기 위한 도구로 보면 되겠네요

 

그러면 webView를 생성해보겠습니다

 

먼저 Xcode에서 프로젝트 생성하고

 

storyBoard에 webView 하나 넣어줍시다.

 

webView를 사용하기 위해 WebKit 프레임워크를 사용할거에요.

 

"WebKit는 웹 컨텐츠를 앱 컨텐츠에 통합시키는 역할을 합니다"

 

 webView를 띄울 파일에 WebKit를 import 해줍니다.

import WebKit

 

  

StoryBoard에 있는 webView 컴포넌트를 끌어다가 WkwebView 클래스의 객체를 하나 생성해줍니다.

import UIKit
import WebKit

class ViewController: UIViewController {

    @IBOutlet var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

 

 

viewDidload()에 바로 webView를 생성하고 url을 로드하는 코드를 구현하겠습니다.

 

 override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        webView = WKWebView(frame: self.view.frame)
        self.view = webView
        
        let url = URL(string: "https://andamiro-jy.tistory.com/")
        let request = URLRequest(url: url!)
        
        webView.allowsBackForwardNavigationGestures = true // 뒤로가기 제스처 허용
        
        webView.configuration.preferences.javaScriptEnabled = true
        
        webView.load(request)
    }

 

 

그 다음 URL 객체를 통해 인코딩되지 않은 string을 URL형태로 만든 후 URLRequest라는 요청 객체를 만듭니다.

 

URL의string은 영문, 숫자와 특정 문자만 인식 가능하고, 한글, 띄어쓰기 등은 인식하지 못합니다.

 

마지막으로 .load에 만들어둔 request를 담으면

 

 

 

--- 추가

 

 

라고 써있네요,,,

Instance will be immediately deallocated because property 'webview' is 'weak' 

즉, 제가 선언한 "webView" propery가 weak으로 설정되어 있기 때문에 인스턴스가 즉각 해제된다고 xcode에서 경고를 주네요

 

일단 weak으로 설정해둬서 경고를 받았으니 weak을 지웠고 경고창은 사라졌습니다,,!

적절한 방법이 아닌거 같아 따로 사진 첨부하지 않겠습니다,,. 나중에 방법 찾으면 글을 작성할거에요

 

그럼 오늘도 좋은 하루 되세요~!(งᐖ)ว

반응형

댓글