스위프트 웹뷰 예제

위의 코드는 iOS 12 및 Swift 5에서 잘 작동합니다. 불행히도 웹 페이지에는 일반적으로 움직이는 조각이 많기 때문에 마일리지가 다를 수 있습니다. 중요한 것은 웹 페이지의 높이를 가능한 한 늦게 평가하는 것이지만 나중에는 그렇지 않습니다. 페이지가 완전히 로드가 완료되는 즉시 콘텐츠 높이를 얻으려고 합니다. 나는 대규모, 무료 SwiftUI 튜토리얼 컬렉션을 작성하고, 또한 유튜브에 무료 SwiftUI 자습서의 성장 목록을 가지고 무료로 SWIFTUI 알아보기 – 오늘 시작! WKWebview는 루트 뷰에 할당되고 뷰 컨트롤러는 WKNavigationDelegate 프로토콜의 대리자입니다. ViewDidLoad 메서드를 텍스트 문자열인 URL에 사용되더라도 Swift는 URL을 특정 URL 데이터 형식에 저장하여 많은 추가 기능을 추가합니다. 따라서 코드의 첫 번째 줄은 “https://www.hackingwithswift.com”문자열에서 새 URL을 만듭니다. hackingwithswift.com 예제 웹 사이트로 사용하고 있지만 원하는 웹 사이트로 변경하십시오. 제품 이름의 경우 IOSWebViewTutorial을 사용한 다음 조직 이름 및 조직 식별자를 사용자 지정 값으로 작성합니다. Swift를 언어로 입력하고 다음을 선택합니다. 첫 번째 줄은 파일의 위치를 저장하는 Swift의 방법입니다 URL이라는 새 데이터 형식을 만듭니다.

URL을 https://www.hackingwithswift.com 같이 온라인에서 사용하는 것처럼 이미 잘 알고 있을 수 있지만 로컬 파일 이름을 저장하는 데에도 마찬가지로 중요합니다. 더 나아가기 전에 컴파일 오류를 수정할 차례입니다. 대리자를 설정할 때 대리자와 일치하는 프로토콜을 준수해야 합니다. 예. 모든 navigationDelegate 프로토콜 메서드는 선택 사항이지만 Swift는 아직 알지 못합니다. 우리가 웹 보기에 적합한 대리자라고 약속하지만 프로토콜을 구현하지 않았다는 것은 알고 있습니다. 이것이 바로 수정사항입니다. 그러나 내가 논의하고 싶은 것은 ViewController가 이제 Swift에서 불가능한 두 가지에서 상속되는 것처럼 보이는 방법입니다.

아시다시피 클래스 A: B는 클래스 B에서 제공하는 기능을 기반으로 하는 A라는 새 클래스를 정의합니다. 그러나 클래스 A: B, C는 UIViewController(목록의 첫 번째 항목)에서 상속되며 WKNavigationDelegate 프로토콜을 구현할 것을 약속합니다. wayou/WebViewExample에서 새 릴리스에 대한 알림을 원하십니까? 웹 뷰에 일부 콘텐츠가 로드되면 evaluateJavaScript() 메서드를 사용하여 렌더링된 페이지 내에서 원하는 JavaScript를 실행할 수 있습니다. 실행이 완료되면 실행이 종료되는 경우 실행해야 할 클로저와 함께 일부 값을 읽는 자바 스크립트를 실행하기만 하면 됩니다. 그리고 WKWebView에 대한 우리의 탐구를 마무리합니다. 웹 보기는 매우 강력한 구성 요소, 이기는 하지만 너무 작업 까다롭습니다. 마지막으로 앱을 실행하십시오! 콘솔에는 대리자 함수가 호출되는 순서가 표시됩니다. 잘린 이미지를 원하지 않는 경우 ( 즉, 모든 것을 원한다면 ) 는 config 대신 nil을 사용합니다. 자신의 서버에서 페이지를 읽는 경우 앱 사용자를 식별할 수 있도록 사용자 에이전트를 자신의 문자열로 조정할 수 있습니다. 예를 들어 위임 솔루션은 훌륭합니다. 코드에서 웹 뷰의 navigationDelegate 속성을 자체로 설정합니다.

3. 방금 방금 열어 놓은 개체 라이브러리에서 웹 뷰 개체를 ViewController로 끕니다. WebView의 제약 조건을 설정 – 전체 화면이 웹 보기로 설정하려면 웹 뷰의 가장자리를 superView의 가장자리에 고정할 수 있습니다. 그런 다음 loadView() 메서드를 재정의하여 뷰 컨트롤러의 뷰에 할당합니다. 먼저 인터페이스 빌더의 컨트롤러입니다.