iOS基礎網路教程-Swift版本: 2.使用UIWebView請求資料
阿新 • • 發佈:2018-12-30
在前面, 我們已經瞭解過了 UIWebView, 以及網路的一些概念, 現在讓我們來做一個簡單的瀏覽器, 網路請求的一些細節~
在這裡, 我們會使用 UIWebView 與網路最簡單的互動, 那就是使用 URL 載入網路的資料.
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
2
3
好了,這次我們就講到這裡, 下次我們繼續