[IOS] Do it(6) Web App 구현 하기

728x90

Web App 구현하기


** 웹 사이트 검색 및 페이지 컨트롤 할 수 있는 Web App 입니다. **
페이지 이동, Html, File(Html), refresh, stop, 앞 뒤 페이지 이동 을 구현하였습니다. 

결과 화면


코드 & 설명



import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    @IBOutlet var textUrl: UITextField!
    @IBOutlet var myWebView: WKWebView!
    @IBOutlet var myActivityIndicator: UIActivityIndicatorView!

    //특정 웹페이지 로드 하는 함수(url인수로 해서)
    func loadWebPage(_ url: String){
        let myUrl = URL(string: url) //url 받아서 URL형으로 선언
        let myRequest = URLRequest(url: myUrl!) //myUrl받아서 URLRequest형으로 선언
        myWebView.load(myRequest) //myWebView 클래스의 load 메서드 호출
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
            myWebView.navigationDelegate = self
            loadWebPage("http://syhwang.net/jp") //처음 시작할때 보여줄 페이지
    }
    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
    }
    //"http://"없을 경우 자동 삽입
    func checkUrl(_ url: String) -> String {
        var strUrl = url //입력 받은 url 스트링을 임시변수 strUrl 에 넣습니다.
        let flag = strUrl.hasPrefix("http://") //http가지고 있는지 확인 한 값을 flag에 넣는다
        if !flag{ //값이 없으면 추가해준다
            strUrl = "http://" + strUrl
        }
        return strUrl
    }
    //text 필드에 적힌 주소로 웹 로딩
    @IBAction func btnGotoUrl(_ sender: UIButton) {
        let myUrl = checkUrl(textUrl.text!)
        textUrl.text = ""
        loadWebPage(myUrl)
    }

    @IBAction func btnGoSite1(_ sender: UIButton) {
        loadWebPage("http://yahoo.co.jp")
    }
    @IBAction func btnGoSite2(_ sender: UIButton) {
        loadWebPage("http://naver.com")
    }
    @IBAction func btnLoadHtmlString(_ sender: UIButton) {
        let htmlString = "<h1> HTML String </h1><p> String 변수를 이용한 웹 페이지</p><p><a href=\"http://google.co.kr\">google</a>으로 이동</p>"  //HTML문을 변수에 저장
        myWebView.loadHTMLString(htmlString, baseURL: nil) //loadHTMLString함수를 이용, 변수에 저장된 HTML문을 웹뷰에 나타낸다
    }
    @IBAction func btnLoadHtmlFile(_ sender: UIButton) {
        //htmlView.html의 파일에 대한 패스 변수 생성
        let filePath = Bundle.main.path(forResource: "htmlView", ofType: "html")
        //패스 변수를 이용하여 URL변수 생성
        let myUrl = URL(fileURLWithPath: filePath!)
        //URL변수 이용하여 Request 변수 생성
        let myRequest = URLRequest(url: myUrl)
        //Request 변수 이용하여 HTML 파일 로딩
        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() //다음 웹페이지로 이동시키는 함수 호출
    }

}

전체 코드

 

Web.zip
0.07MB


출처 : Do it 스위프트로 앱 만들기

728x90

댓글

Designed by JB FACTORY