xcode wkwebview 예제

대리자는 다른 대신에 효과적으로 질문에 응답하고 대신 이벤트에 응답하는 한 가지입니다. 이 예제에서는 Apple의 강력하고 유연하며 효율적인 웹 렌더러인 WKWebView를 사용하고 있습니다. 그러나 WKWebView만큼 똑똑하기 때문에 사용자 지정 코드이기 때문에 응용 프로그램이 어떻게 동작할지 알 지 못합니다. 웹 뷰에 일부 콘텐츠가 로드되면 evaluateJavaScript() 메서드를 사용하여 렌더링된 페이지 내에서 원하는 JavaScript를 실행할 수 있습니다. 실행이 완료되면 실행이 종료되는 경우 실행해야 할 클로저와 함께 일부 값을 읽는 자바 스크립트를 실행하기만 하면 됩니다. 코드에서 HTML을 생성하고 WKWebView에 직접 공급할 수 있습니다. 예를 들어”help.html”이라는 파일을 로드하려는 경우 다음과 같은 코드를 사용할 수 있습니다. 예를 들어 사용자가 이미 방문한 모든 사이트의 목록을 이 루프를 사용하여 인쇄할 수 있습니다. 예를 들어, 이것이 전부가 아니라, 예를 들어 webView(_:decidePolicy:decisionHandler:)를 사용할 수 있습니다.

페이지 탐색이 허용되는지 여부를 결정합니다. 또한 리디렉션, HTTP 인증 문제에 응답하고 충돌 복구를 사용할 수 있습니다. 먼저 WKNavigationDelegate를 준수하는 것을 확인하십시오 . 예를 들어, 예를 들어, 이 코드는 모든 쿠키를 반복하며 “인증”이라는 것을 발견하면 다른 모든 쿠키가 인쇄됩니다. 원하는 대로 WKUIDelegate의 선택적 메서드입니다. 예를 들어 모든 웹 페이지가 alert() JavaScript 함수를 사용할 때 WKWebView에서 사용자 지정 경고 컨트롤러를 표시하도록 만들 수 있습니다. 번들에서 이미지 나 CSS와 같은 자산을 참조하는 경우, 로드 할 수 있도록 Bundle.main.resourceURL을 지정해야합니다. 예를 들어, decidePolicyFor 메서드를 구현 하 여 페이지를 로드 해야 하는지 여부를 결정 하려는 논리를 추가 합니다. 예를 들어, 이 구현은 사용자가 애플 홈페이지를 방문 하 고 아무것도 방문 할 수 있습니다: 예를 들어, 이 구현은 애플 홈페이지로 이동 하지 않는 한 웹 보기 내의 모든 링크를 로드 합니다.: 초기화를 사용 하 여 새 WKWebView 개체를 만든 후 (프레임:구성:) 웹 콘텐츠를 로드해야 합니다. 로드HTMLString(_:baseURL:) 사용 메서드는 로컬 HTML 파일 또는 로드(_:) 로드를 시작합니다.

웹 콘텐츠 로드를 시작하는 메서드입니다. stopLoading() 메서드를 사용하여 로드를 중지하고 isLoading 속성을 사용하여 웹 뷰가 로드 중인지 확인합니다. 웹 콘텐츠 로드를 추적하기 위해 WKUIDelegate 프로토콜을 준수하는 개체에 대리자 속성을 설정합니다. 프로그래밍 방식으로 WKWebView를 만드는 예제는 목록 1을 참조하십시오. 예를 들어, 웹 뷰에 가능한 모든 데이터 유형을 검색하도록 지시합니다 @twostraws

@twostraws. 텍스트 문자열을 사용하여 Swift는 URL을 특정 URL 데이터 유형에 저장하여 많은 추가 기능을 추가합니다. 따라서 코드의 첫 번째 줄은 “https://www.hackingwithswift.com”문자열에서 새 URL을 만듭니다. hackingwithswift.com 예제 웹 사이트로 사용하고 있지만 원하는 웹 사이트로 변경하십시오. 경고: iOS는 데이터를 안전하지 않게 보내거나 받는 앱을 좋아하지 않기 때문에 웹 사이트에 https:// 사용해야 합니다. 이 것을 재정의하려는 경우 앱 전송 보안에 대해 구체적으로 기사를 썼습니다: .