์ค๋์ ์น๋ทฐ๋ฅผ ๊ตฌํํด๋ณด์์ต๋๋ค.
์ผ๋จ ์คํ ๋ฆฌ๋ณด๋์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์
URL์ ์ ๋ ํ
์คํธ ํ๋์ ๋ฒํผ,
์ฌ์ดํธ๋ก ์ด๋ํ๋ ์์ ๋ฒํผ 4๊ฐ,
์น ๋ทฐ,
๋ฐ ๋ฒํผ4๊ฐ
๋ฒํผ ์ฌ์ด์ ๊ณต๊ฐ์ ์ฃผ๋ Flexible space bar button item 3๊ฐ๋ฅผ ์ค๋๋ค.
(๋ฐ ๋ฒํผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ์ธํ ๋ ๊ณต๊ฐ์ ๋ฐ๋ก ์ฃผ๋ item์ด ์๋ค๋ ๊ฒ์ด ์ ๊ธฐํ์์ต๋๋ค.๐ค)
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
//WKNavigationDelegate๋ฅผ ์์์ฌ์ผ์ค์ WebView์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋จ
@IBOutlet var txtUrl: UITextField!
@IBOutlet var myWebView: WKWebView!
@IBOutlet var myActivityIndicator: UIActivityIndicatorView!
//textField์ WebView,Indicator์ ์์ธ๋ ๋ณ์๋ฅผ ์ ์ธ
func loadWebPage(_ url: String){
let myUrl = URL(string: url)
let myRequest = URLRequest(url: myUrl!)
myWebView.load(myRequest)
}
//WebView๋ฅผ ๋ถ๋ก์ค๋ ํจ์ ์ธ์๋ก ์ฃผ์ด์ง Url์ request๋ฅผ ๋ณด๋ด์ Webview์ ๋ถ๋ฌ์จ๋ค.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
myWebView.navigationDelegate = self
loadWebPage("http://2sam.net")
}
//์ฑ์ด ์คํ๋ ๋ ๋ถ๋ฌ์ฌ ์น์ Url๋ก webView๋ฅผ ์ค์ ํ๋ค.
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
myActivityIndicator.startAnimating()
myActivityIndicator.isHidden = false
}
//์น๋ทฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋์ Indicator๊ฐ ์คํ
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
myActivityIndicator.startAnimating()
myActivityIndicator.isHidden = true
}
//์น๋ทฐ๊ฐ ๋ก๋ฉ์ด ๋๋๊ณ Indicator๊ฐ ์ค์ง
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
myActivityIndicator.startAnimating()
myActivityIndicator.isHidden = true
}
//์น๋ทฐ๊ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ Indicator๊ฐ ์ค์ง
func checkUrl(_ url: String) -> String {
var strUrl = url
let flag = strUrl.hasPrefix("http://")
if !flag {
strUrl = "http://" + strUrl
}
return strUrl
}
//textFile์ http://๊ฐ ์์ ๋ถ์ด์์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋ถ์ฌ์ค๋ค.
@IBAction func btnGotoUrl(_ sender: UIButton) {
let myUrl = checkUrl(txtUrl.text!)
txtUrl.text = ""
loadWebPage(myUrl)
}
//Go ๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น url๋ก WebView๋ฅผ ๋ถ๋ฌ์จ๋ค.
@IBAction func btnGotoSite1(_ sender: UIButton) {
loadWebPage("http://fallinmac.tistory.com")
}
//site1 ๋ฒํผ ๋๋ฅผ ์ ์ด๋ํ ์ฌ์ดํธ ์ค์
@IBAction func btnGotoSite2(_ sender: UIButton) {
loadWebPage("http://blog.2sam.net")
}
//site2 ๋ฒํผ ๋๋ฅผ ์ ์ด๋ํ ์ฌ์ดํธ ์ค์
@IBAction func btnLoadHtmlString(_ sender: UIButton) {
let html = "<h1> HTML String</h1><p> String ๋ณ์๋ฅผ ์ด์ฉํ ์น ํ์ด์ง</p><p><a href=\"http://2sam.net\">2sam</a></p>"
myWebView.loadHTMLString(html, baseURL: nil)
}
//๋ฌธ์์ด์ ์ ์ฅ๋ html์ผ๋ก webView๋ฅผ ๋ก๋ํ๋ค.
@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)
}
//file์ ์ ์ฅ๋ html์ ๋ถ๋ฌ์ ํ๋ฉด์ ๋ก๋ํ๋ค.
@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()
}
}
ViewController.swift ํ์ผ์์ WebView๋ฅผ ์กฐ์ํ๊ธฐ ์ํด์๋
import WebKit
WebKit ๋ชจ๋์ ๋ถ๋ฌ์์ ViewControllerํด๋์ค์ WKNavigationDelegate๋ฅผ ์์์์ผ ์ฃผ์ด์ผ ํฉ๋๋ค.