iOS基础网络教程-Swift版本: 2.使用UIWebView请求数据

在前面, 我们已经了解过了 UIWebView, 以及网络的一些概念, 现在让我们来做一个简单的浏览器, 网络请求的一些细节~

在这里, 我们会使用 UIWebView 与网络最简单的交互, 那就是使用 URL 加载网络的数据.


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!
}

监听点击事件

    @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 的代理方法

    // 使用 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
3


好了,这次我们就讲到这里, 下次我们继续

posted @ 2015-05-01 19:56  背着吉他去流浪  阅读(348)  评论(0编辑  收藏  举报