본문 바로가기
ios 뽀개기/ios앱

10 웹뷰 webview

by 인생여희 2017. 11. 22.
반응형

ios11 webview




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
//
//  ViewController.swift
//  WebView
//
//  Created by MacBookPro on 2017. 11. 22..
//  Copyright © 2017년 MacBookPro. All rights reserved.
//
 
import UIKit
 
//webviewdelegate 클래스 상속 받기
class ViewController: UIViewController, UIWebViewDelegate {
    
    //텍스트필드 - 주소창
    @IBOutlet weak var txtUrl: UITextField!
    //웹 뷰
    @IBOutlet weak var myWebView: UIWebView!
    //인디케이터 아웃렛 변수
    @IBOutlet weak var myActivityIndicator: UIActivityIndicatorView!
    
    //웹뷰페이지 로드해주는 함수
    func loadWebPage(_ url: String){
       
        let myUrl = URL(string: url)
        let myRequest = URLRequest(url: myUrl!)
        myWebView.loadRequest(myRequest)
    }
    
    //첫 화면 띄울때 웹뷰페이지 로드하기
    override func viewDidLoad() {
        super.viewDidLoad()
        
        myWebView.delegate = self //로딩 뱅글뱅글 돌게하기
        loadWebPage("http://www.creativeshake.co.kr")
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    //웹뷰 실행될 때 로딩 중 함수
    func webViewDidStartLoad(_ webView: UIWebView) {
        myActivityIndicator.startAnimating()
    }
    // 웹뷰 끝나고 종료 함수
    func webViewDidFinishLoad(_ webView: UIWebView) {
        myActivityIndicator.stopAnimating()
    }
    
    
    //go버튼 눌렀을 때
    @IBAction func btnGo(_ sender: UIButton) {
    
        let newUrl = checkUrl(txtUrl.text!)
        txtUrl.text = " "
        loadWebPage(newUrl)
    }
    
    // 주소 앞에 http 붙었는지 안붙었는지 검사
    func checkUrl(_ url: String-> String {
        
        var strUrl = url
        let flag = strUrl.hasPrefix("https://")
        
        if !flag {
           strUrl = "https://" + strUrl
        }
        
        return strUrl
    }
    
    
    
    //site1버튼 눌렀을 때
    @IBAction func btnGoSite1(_ sender: UIButton) {
    loadWebPage("http://abc1211.tistory.com/")
    }
    
    //site2버튼 눌렀을 때
    @IBAction func btnGoSite2(_ sender: UIButton) {
        loadWebPage("https://www.naver.com/")
    }
    
    //html 버튼 눌렀을 때
    @IBAction func btnLoadHtmlString(_ sender: UIButton) {
    let htmlString = "<h1> html string </h1> <p> String 변수를 통한 웹페이지</p> <p><a href=\"https:www.naver.com\">네이버</a>이동</p>"
    myWebView.loadHTMLString(htmlString, baseURL: nil)
    }
    
    //file버튼 눌렀을 때
    @IBAction func btnLoadHtmlFile(_ sender: UIButton) {
        let myHtmlBundle = Bundle.main
        let filePath = myHtmlBundle.path(forResource: "htmlView", ofType: "html")
        loadWebPage(filePath!)
    }
    
    
    //정지
    @IBAction func btnStop(_ sender: UIBarButtonItem) {
        myWebView.stopLoading()
    }
    
    //화면 고침
    @IBAction func btnRefresh(_ sender: UIBarButtonItem) {
        myWebView.reload()
    }
    
    //뒤로가기
    @IBAction func btnBack(_ sender: UIBarButtonItem) {
        myWebView.goBack()
    }
    
    //앞으로 가기
    @IBAction func btnForward(_ sender: UIBarButtonItem) {
        myWebView.goForward()
    }
    
}
 
 
cs


팁: ios 9 이상에서는 웹뷰를 사용할때 http 보안때문에 설정을 따로 해줘야 한다.


반응형

'ios 뽀개기 > ios앱' 카테고리의 다른 글

12 ios 스위프트 pageControl  (0) 2017.11.23
11 mapview  (0) 2017.11.22
9 alert 경고창 띄우기  (0) 2017.11.22
8 picker view 응용  (0) 2017.11.21
7 picker view  (0) 2017.11.21

댓글