iOS基礎網絡教程-Swift版本: 2.使用UIWebView請求數據

在前面, 咱們已經瞭解過了 UIWebView, 以及網絡的一些概念, 如今讓咱們來作一個簡單的瀏覽器, 網絡請求的一些細節~css

在這裏, 咱們會使用 UIWebView 與網絡最簡單的交互, 那就是使用 URL 加載網絡的數據.web


1.搭建界面

1


2.實現網絡交互

關聯控件, 以及獲取屬性瀏覽器

class ViewController: UIViewController, UISearchBarDelegate, UIWebViewDelegate {
// 搜索欄
    @IBOutlet weak var searchBar: UISearchBar!
// WebView
    @IBOutlet weak var webView: UIWebView!
// 後退Button
    @IBOutlet weak var goBack: UIBarButtonItem!
// 前進Button
    @IBOutlet weak var goForward: UIBarButtonItem!
}

監聽點擊事件markdown

@IBAction func goToBack(sender: UIBarButtonItem) {
        webView.goBack()
    }

    @IBAction func goToForward(sender: UIBarButtonItem) {
        webView.goForward()
    }

加載網絡數據網絡

override func viewDidLoad() {
        super.viewDidLoad()

        // 1.設置訪問資源 - 百度搜索
        let url = NSURL(string: "http://www.baidu.com")!

        // 2.創建網絡請求
        let request = NSURLRequest(URL: url)

        // 3.加載網絡請求
        webView.loadRequest(request)

        // 4.設置 UISearchBar 的代理對象
        searchBar.delegate = self
        webView.delegate = self
    }

UISearchBar 的代理方法ide

// 使用 UISearchBar 的代理方法
    func searchBarSearchButtonClicked(searchBar: UISearchBar) {
        // 1.獲取當前 UISearchBar 的 Text
        var str = searchBar.text

        // 2.判斷 UISearchBar 是否有前綴, 若是有, 就使用自定義的網址, 若是沒有就默認使用百度搜索
        if !str.hasPrefix("http://") {
            str = "http://www.baidu.com/s?word=" + str
        }

        // 3.將輸入的文字或者是須要搜索的東西轉成 UTF8 格式, 而且解包
        let url = NSURL(string: str.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)

        // 4.創建網絡請求
        let request = NSURLRequest(URL: url!)

        // 5.加載網絡請求
        webView.loadRequest(request)

        // 6.關閉 UISearchBar 的彈出鍵盤
        self.view.endEditing(true)
    }

優化體驗優化

// UIWebView 代理方法, 自動檢測是否有加載過數據, 若是有的話就會根據系統的判斷來顯示前進或者後退的按鈕
    func webViewDidFinishLoad(webView: UIWebView) {
        self.goBack.enabled = webView.canGoBack
        self.goForward.enabled = webView.canGoForward
    }

3.最終效果

1
1
2
2
3
3url


好了,此次咱們就講到這裏, 下次咱們繼續spa

相關文章
相關標籤/搜索