7장
Web-View : 웹 컨텐츠를 뷰(View)형태로 보여 주는 앱, HTML로 작성된 홈페이지를 표시할 수 있다.
- 아웃렛 변수 : 텍스트 필드(주소 입력), 웹 뷰,
- 액션 함수 : 버튼(주소창 검색버튼, Site1, Site2, HTML, File), 툴바(툴바, Bar Button Item, Flexible space Bar Button Item)
※ import WebKit
- import 명령어를 통해 WebKit 모듈을 가져옴
※ 툴바와 버튼
- 툴바 : 툴바 기능을 할 버튼들이 놓일 공간을 지정
- Bar Button Item : Flexible과 함께 툴바에 놓여 일정 공간을 버튼으로 할당
- Flexible space Bar Button Item : Bar Button Item의 사이와 바깥에 놓아 일정 간격을 유지해 주는 역할
▷ 전체 코드
더보기
//
// ViewController.swift
// Web
//
// Created by 박성수 on 2022/03/30.
//
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet var txtUrl: UITextField!
@IBOutlet var myWebView: WKWebView!
@IBOutlet var myActivityIndicator: UIActivityIndicatorView!
func loadWebPage(_ url: String){
let myUrl = URL(string: url)
let myRequest = URLRequest(url: myUrl!)
myWebView.load(myRequest)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
myWebView.navigationDelegate = self
loadWebPage("http://www.naver.com/")
}
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!){
myActivityIndicator.startAnimating()
myActivityIndicator.isHidden = false
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
myActivityIndicator.stopAnimating()
myActivityIndicator.isHidden = true
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
myActivityIndicator.stopAnimating()
myActivityIndicator.isHidden = true
}
func checkUrl(_ url: String) -> String {
var strUrl = url
let flag = strUrl.hasPrefix("http://")
if !flag {
strUrl = "http://" + strUrl
}
return strUrl
}
@IBAction func btnGotoUrl(_ sender: UIButton) {
let myUrl = checkUrl(txtUrl.text!)
txtUrl.text = ""
loadWebPage(myUrl)
}
@IBAction func btnGoSite1(_ sender: UIButton) {
loadWebPage("https://github.com")
}
@IBAction func btnGoSite2(_ sender: UIButton) {
loadWebPage("https://stackoverflow.com")
}
@IBAction func btnLoadHtmlString(_ sender: UIButton) {
let htmlString = "<h1> HTML String </h1><p> String 변수를 이용한 웹 페이지 </p><p><a href=\"http://www.daum.net\">daum</a>으로 이동</p>"
myWebView.loadHTMLString(htmlString, baseURL: nil)
}
@IBAction func btnLoadHtmlFile(_ sender: UIButton) {
let filePath = Bundle.main.path(forResource: "htmlView", ofType: "html")
let myUrl = URL(fileURLWithPath: filePath!)
let myRequest = URLRequest(url: myUrl)
myWebView.load(myRequest)
}
@IBAction func btnStop(_ sender: UIBarButtonItem) {
myWebView.stopLoading()
}
@IBAction func btnReload(_ sender: UIBarButtonItem) {
myWebView.reload()
}
@IBAction func btnGoBack(_ sender: UIBarButtonItem) {
myWebView.goBack()
}
@IBAction func btnGoForward(_ sender: UIBarButtonItem) {
myWebView.goForward()
}
}
'Application > Swift' 카테고리의 다른 글
22.04.06 Map-view (0) | 2022.04.08 |
---|---|
22.03.29 Alert(얼럿)기능 구현 (0) | 2022.03.29 |
22.03.28 Picker-View 구현 및 Delegate (0) | 2022.03.29 |