它就像是一個小小瀏覽器,也可以顯示圖片、GIF動畫,GOOGLE MAP等等。
Web View常用的方法如下:
loadRequest(request:NSURLResuest) 載入URL請求以顯示網頁
loadHTMLString(string:String!,baseURL:NSURL!) 載入網頁內容
loadData(file:NSData!,MIMEType:String!,textEncodingName:String!,baseURL:NSURL!)
reload() 重新載入
stropLoading() 停止載入
goBack() 在歷史紀錄中回到上一頁,如果沒有上一頁則不會有任何處理。
goForware() 在歷史紀錄中進到下一頁,如果沒有下一頁則不會有任何處理
載入Yahoo新聞 https://tw.news.yahoo.com/
先拉一個WebView元件出來,與程式碼建立連結
這裡注意一件事,Storage必須選擇Strong,否則你會無法找到loadRequest之類的方法。
俺在這裡吃了一個晚上的悶虧。
程式碼如下:
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let url = NSURL(string:"https://tw.news.yahoo.com/") let request = NSURLRequest(URL:url!) myWebView.loadRequest(request); }
執行結果
(也就是加密過的),如果是普通 http 的網頁會無法開啟。
如果要允許開啟HTTP網頁,需要額外設定。
(1)打開info.plist
(2)空白處按右鍵 Add Row
輸入NSAppTransportSecurity 後按下Enter
然候點一下這一行,讓箭頭向下,再按右鍵Add Row
輸入NSAllowsArbitraryLoads 後按下Enter,型別為Boolean,值為Yes
再重新Build一次程式就可以Run一般的網頁了。
程式碼如下,我們來開一下蕃薯藤網站,沒有HTTPS的入口網頁之一,也沒有RWD。
@IBOutlet var myWebView: UIWebView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let url = NSURL(string:"http://www.yam.com/") let request = NSURLRequest(URL:url!) myWebView.loadRequest(request); }
接下來示範另一個有用的功能,讀取HTML字串(或者稱為HTML原始碼)。
例如我有一個網頁的原始碼長這樣。
我們用loadHTMLString方法來顯示這段程式碼
執行畫面如下
參考資料:
例如我有一個網頁的原始碼長這樣。
<html> <head> <title>Test Read HTML String</title> </head> <body> <h1>test h1</h1><br><h2>test h2</h2> </body> </html>
我們用loadHTMLString方法來顯示這段程式碼
@IBOutlet var myWebView: UIWebView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let source:String = "<html><head><title>Test Read HTML String</title></head><body><h1>test h1</h1><br><h2>test h2</h2></body></html>" myWebView.loadHTMLString(source, baseURL: nil) }
執行畫面如下
參考資料:
網頁 UIWebView
沒有留言:
張貼留言