-contentView-

//
//  ContentView.swift
//  swiftUI_Webview_tutorial
//
//  Created by devdepot on 2021/04/27.
//

import SwiftUI

struct ContentView: View {
    var body: some View {
//        MyWebView(urlToLoad: "https://www.naver.com")
        
        NavigationView{
            HStack{
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.naver.com")){
                    Text("네이버")
                }
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.google.com")){
                    Text("구글")
                }
                NavigationLink(
                    destination: MyWebView(urlToLoad: "https://www.daum.net")){
                    Text("다음")
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

 

-MyWebView-

//
//  MyWebView.swift
//  swiftUI_Webview_tutorial
//
//  Created by devdepot on 2021/04/27.
//

import SwiftUI
import WebKit

// uikit 의 uiView 를 사용할 수 있도록 한다.
// uiViewCOntrollerRepresntable

struct MyWebView: UIViewRepresentable {
    
    var urlToLoad: String
    
    // uiview 만들기
    func makeUIView(context: Context) -> WKWebView {
        
        guard let url = URL(string: self.urlToLoad) else {
            return WKWebView()
        }
        
        //웹뷰 인스턴스 생성
        let webView = WKWebView()
        
        // 웹뷰를 로드한다.
        webView.load(URLRequest(url: url))
        
        return webView
    }
    
    // 업데이트 ui view
    func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext<MyWebView>) {
        
    }
}

struct MyWebVie_previees: PreviewProvider{
    static var previews: some View{
        MyWebView(urlToLoad: "https://www.naver.com")
    }
}

'IOS > SwiftUI' 카테고리의 다른 글

(SwiftUI)07.Stack 정리  (0) 2021.04.27
(SwiftUI)06.CircleImage  (0) 2021.04.27
(SwiftUI)03.바인딩 @Binding  (0) 2021.04.27
(SwiftUI)02. 네비게이션,spacer,@state  (0) 2021.04.26
(SwiftUI)01. VStack,HStack  (0) 2021.04.26

+ Recent posts