사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • Summary
  • Declaration
  • 개요
  • 주제
  • Determining Whether WebKit can Load Content
  • 웹 뷰 초기화
  • 뷰 정보 검사
  • Delegate 설정
  • 컨텐츠 로딩
  • 컨텐츠 스케일링
  • Navigating
  • 자바스크립트 실행
  • 스크린샷 캡처
  • 관련 문서
  • 상속
  • 준수하는 프로토콜
  • 같이 보기
  • 초기화
  1. App Services
  2. WebKit

WKWebView

인 앱 브라우저와 같이 인터렉티브 웹 컨텐츠를 표시하는 객체

PreviousWebKitNextAVFoundation

Last updated 5 years ago

원문 출처

Summary

SDKs

  • iOS 8.0+

  • macOS 10.10+

Framework

  • WebKit

Declaration

iOS, Mac Catalyst
class WKWebView : UIView
macOS
class WKWebView : NSView
iOS
@interface WKWebView : UIView
macOS
@interface WKWebView : NSView

개요

Important

iOS 8.0과 OS X 10.10부터는 웹 컨텐츠를 앱에 추가할 때 WKWebView를 사용해야 합니다. UIWebView나 WebView를 사용하지 마세요.

WKWebView 클래스를 사용하면 웹 컨텐츠를 앱에 내장시킬 수 있습니다. WKWebView 클래스를 사용하기 위해서는 WKWebView 객체를 생성하고 뷰로써 설정한 다음 웹 컨텐츠를 불러오기 위해서 요청을 보내야 합니다.

Note

WKWebView 안에서 컨텐츠로 POST 요청을 할 수 있습니다.

Listing 1. 프로그래밍적으로 WKWebView 생성
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
    
    var webView: WKWebView!
    
    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        view = webView
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let myURL = URL(string:"https://www.apple.com")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
    }}

주제

Determining Whether WebKit can Load Content

  • class func handlesURLScheme(String) -> Bool 리소스를 로딩하는 특정 URL 스키마에 대한 WebKit의 네이티브 지원 여부를 반환합니다.

웹 뷰 초기화

  • var configuration: WKWebViewConfiguration

    웹 뷰를 초기화하기 위한 설정의 복사본

  • init(frame: CGRect, configuration: WKWebViewConfiguration) 지정된 프레임과 설정으로 초기화된 웹 뷰를 반환합니다.

  • init?(coder: NSCoder)

뷰 정보 검사

  • var scrollView: UIScrollView 웹 뷰에 연결된 스크롤 뷰

  • var title: String? 페이지 제목

  • var url: URL?

    활성 URL

  • var customUserAgent: String?

    커스텀 User agent 문자열

  • var serverTrust: SecTrust? 현재 커밋된 탐색에 대한 SecTrustRef 객체

  • var certificateChain: [Any] Deprecated

    An array of objects forming the certificate chain for the currently committed navigation.

Delegate 설정

  • var navigationDelegate: WKNavigationDelegate?

    웹 뷰의 네비게이션 delegate

  • var uiDelegate: WKUIDelegate? 웹 뷰의 유저 인터페이스 delegate

컨텐츠 로딩

  • var estimatedProgress: Double

    현재 네비게이션의 로드량을 추정합니다.

  • var hasOnlySecureContent: Bool 페이지의 모든 리소스가 안전하게 암호화된 연결을 통해서 로드된 것인지를 나타냅니다.

  • func loadHTMLString(String, baseURL: URL?) -> WKNavigation? 웹페이지 내용과 base URL을 설정합니다.

  • var isLoading: Bool 뷰가 현재 컨텐츠를 로딩 중인지를 나타냅니다.

  • func reload() -> WKNavigation? 현재 페이지를 새로고침합니다.

  • func reload(Any?) 현재 페이지를 새로고침합니다.

  • func reloadFromOrigin() -> WKNavigation? (가능하다면) 캐시 유효성 검사 조건을 사용하여 종단간 재검증을 수행하고 현재 페이지를 새로 고침합니다.

  • func reloadFromOrigin(Any?)

    (가능하다면) 캐시 유효성 검사 조건을 사용하여 종단간 재검증을 수행하고 현재 페이지를 새로 고침합니다.

  • func stopLoading()

    현재 페이지의 모든 리소스 로딩을 중단합니다.

  • func stopLoading(Any?) 현재 페이지의 모든 리소스 로딩을 중단합니다.

  • func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation? 웹페이지 컨텐츠와 base URL을 설정합니다.

  • func loadFileURL(URL, allowingReadAccessTo: URL) -> WKNavigation? 파일 시스템 상의 요청된 파일 URL로 이동합니다.

컨텐츠 스케일링

  • var allowsMagnification: Bool

    확대 제스처를 통한 웹 뷰 확대 여부를 나타냅니다.

  • var magnification: CGFloat

    The factor by which the page content is currently scaled.

  • func setMagnification(CGFloat, centeredAt: CGPoint)

    지정된 값에 따라서 페이지 컨텐츠를 확대하고 중심점을 맞춥니다.

Navigating

  • var allowsBackForwardNavigationGestures: Bool

    수평 스와이프를 통한 전후 페이지 이동가능 여부를 나타냅니다.

  • var backForwardList: WKBackForwardList 웹 뷰의 전후 리스트

  • var canGoBack: Bool back-forward 리스트 상에 이전 항목이 존재하는 경우 해당 항목으로 이동이 가능한지에 대한 여부를 나타냅니다.

  • var canGoForward: Bool back-forward 리스트 상에 다음 항목이 존재하는 경우 해당 항목으로 이동이 가능한지에 대한 여부를 나타냅니다.

  • var allowsLinkPreview: Bool 링크를 눌렀을때 미리보기의 표시 여부를 나타냅니다.

  • func goBack() -> WKNavigation? back-forward 리스트상의 이전 항목으로 이동합니다.

  • func goBack(Any?) back-forward 리스트상의 이전 항목으로 이동합니다.

  • func goForward() -> WKNavigation? back-forward 리스트상의 다음 항목으로 이동합니다.

  • func goForward(Any?) back-forward 리스트상의 다음 항목으로 이동합니다.

  • func go(to: WKBackForwardListItem) -> WKNavigation? back-forward 리스트 상의 항목으로 이동하고 현재 항목으로 설정합니다.

  • func load(URLRequest) -> WKNavigation? 요청 URL로 이동합니다.

자바스크립트 실행

  • func evaluateJavaScript(String, completionHandler: ((Any?, Error?) -> Void)?) 자바스크립트 문자열을 평가합니다.

스크린샷 캡처

  • func takeSnapshot(with: WKSnapshotConfiguration?, completionHandler: (UIImage?, Error?) -> Void) 뷰에서 보여지고 있는 뷰포트의 스크린샷을 찍습니다.

관련 문서

상속

  • NSView

  • UIView

준수하는 프로토콜

  • CVarArg

  • Equatable Hashable

  • NSStandardKeyBindingResponding

  • NSTouchBarProvider

  • NSUserActivityRestoring

  • NSUserInterfaceValidations

  • UIAccessibilityIdentification

  • UILargeContentViewerItem

  • UIPasteConfigurationSupporting

  • UIUserActivityRestoring

같이 보기

초기화

  • protocol WKNavigationDelegate WKNavigationDelegate 프로토콜 메서드는 웹 뷰 네비게이션 요청의 수락, 로딩, 완료 중에 트리거되는 커스텀 동작의 구현을 돕습니다.

  • class WKProcessPool WKProcessPool 객체는 웹 컨텐츠 프로세스 풀을 나타냅니다.

  • class WKWindowFeatures WKWindowFeatures 객체는 새 웹 뷰를 요청할때 포함된 창에 대한 옵셔널 속성을 지정합니다.

  • class WKWebViewConfiguration 웹 뷰를 초기화하는데 사용되는 프로퍼티 콜렉션

  • class WKPreferences WKPreferences 객체는 웹 뷰에 대한 기본 설정을 캡슐화합니다.

  • class WKWebpagePreferences Beta

  • protocol WKUIDelegate WKUIDelegate 클래스는 웹 페이지를 대신하여 네이티브 유저 인터페이스 요소를 표시하는 메서드를 제공합니다.

  • 웹 뷰를 사용하여 데스크탑이나 모바일 웹 컨텐츠 보기 웹 사이트의 데스크톱 또는 모바일 버전을 볼 수있는 간단한 iPad 웹 브라우저를 구현하세요.

메서드로 새 WKWebView 객체를 생성한 후에는 웹 컨텐츠를 로딩해야 합니다. 메서드는 로컬 HTML파일을, 메서드로는 웹 컨텐츠의 로드를 시작할 수 있습니다. 메서드는 로딩을 멈추게 할 수 있으며 프로퍼티는 웹 뷰가 로딩중인지를 알 수 있습니다. 프로토콜을 준수하는 객체를 delegate 프로퍼티로 지정하여 웹 컨텐츠의 로딩을 추적할 수 있습니다. Listing 1에서 WKWebView를 프로그래밍적으로 생성하는 예시를 확인하세요.

사용자가 웹페이지 기록의 앞이나 뒤로 이동할 수 있게 하려면 과 메서드를 버튼의 액션으로 지정하세요. 과 프로퍼티는 사용자가 해당 방향으로 이동하지 못하게 할 수 있습니다.

기본적으로 웹 뷰는 웹 컨텐츠 상의 전화번호를 전화 링크로 자동변환합니다. 전화 링크를 터치하면 전화 앱이 실행되고 전화번호가 입력됩니다. 이 기본동작을 끄려면 플래그가 없는 비트필드를 사용해서 프로퍼티를 설정하세요.

을 사용해서 웹 뷰가 처음 웹 컨텐츠를 표시할 때 표시 스케일을 설정할 수 있습니다. 따라서 사용자는 제스처를 통해 스케일을 조절할 수 있습니다.

https://developer.apple.com/documentation/webkit/wkwebview
httpBody
init(frame:configuration:)
loadHTMLString(_:baseURL:)
load(_:)
stopLoading()
isLoading
WKUIDelegate
goBack()
goForward()
canGoBack
canGoForward
WKDataDetectorTypePhoneNumber
WKDataDetectorTypes
dataDetectorTypes
setMagnification(_:centeredAt:)