【iOS開發(fā)】利用WebView實(shí)現(xiàn)一個(gè)簡易瀏覽器

預(yù)備知識(shí)


  1. 掌握swift基本語法和常用控件的使用
  2. 掌握AutoLayout的基本使用方法

實(shí)現(xiàn)步驟


1. 新建工程

打開Xcode -> 點(diǎn)擊Create a new Xcode project -> 選擇Single View Application -> 輸入工程名幕侠,語言選擇Swift嗅定,選擇存儲(chǔ)路徑 -> 回車即可

2. Main.storyboard的構(gòu)建

2.1 添加控件

需要添加的控件一共有三個(gè)

  • UITextField
  • Web View
  • Activity Indicator View

具體操作是從Xcode界面右下角的控件欄里直接拖到視圖里(簡單粗暴),然后添加布局約束款熬,這個(gè)就不多說了,不懂的請自行百度攘乒。

2.2 設(shè)置控件的屬性

直接上圖


TextField 屬性

TextField主要修改的屬性

  • PlaceHolder (占位符)
  • Clear Button 設(shè)置為 Appears while editing
  • Keyboard Type 設(shè)置為 URL
  • Return Key 設(shè)置為 Go

Activity Indicator View 修改的屬性

  • Hides When Stopped 設(shè)置為 true
    在屬性欄那里提上鉤即可贤牛,若沒有設(shè)置它會(huì)一直顯示在屏幕中


    Activity Indicator View 屬性

3. 將控件鏈接到ViewController.swift

點(diǎn)擊右上角,選擇輔助編輯器視圖


編輯器視圖

選中控件则酝,按住control鍵殉簸,拖動(dòng)鼠標(biāo)到代碼窗口,將控件輸出口鏈接到代碼中

鏈接到代碼

同樣方法將其余控件鏈接到代碼沽讹,最終 ViewController.swift 會(huì)多出以下三行代碼

demo

4. 添加代碼

需要實(shí)現(xiàn) UIWebViewDelegate 和 UITextFieldDelegate 兩個(gè)協(xié)議

import UIKit

class ViewController: UIViewController, UIWebViewDelegate, UITextFieldDelegate

添加一個(gè)加載請求的方法

//加載請求的方法
func loadUrl(url: String, web: UIWebView) {
    
    //載入輸入的請求
    let aUrl = NSURL(string: ("https://" + url)
    let urlRequest = NSURLRequest(URL: aUrl!)
    web.loadRequest(urlRequest)
    
}

實(shí)現(xiàn)UITextFieldDelegate協(xié)議
textFieldShouldReturn 方法是在 Return 鍵點(diǎn)擊后調(diào)用

 func textFieldShouldReturn(textField: UITextField) -> Bool {

        loadUrl(textField.text!, web: webView1)
        //解除textField的第一響應(yīng)者的注冊資格般卑,鍵盤消失;若沒有這一步爽雄,鍵盤會(huì)一直留在屏幕內(nèi)
        textField.resignFirstResponder()
      return true
}

實(shí)現(xiàn)UIWebViewDelegate協(xié)議

func webViewDidStartLoad(webView: UIWebView) {
    //輪圈開始轉(zhuǎn)動(dòng)
    loading.startAnimating()
    //狀態(tài)欄的網(wǎng)絡(luò)請求輪圈開始轉(zhuǎn)動(dòng)
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}

//網(wǎng)頁加載結(jié)束
func webViewDidFinishLoad(webView: UIWebView) {        
    loading.stopAnimating()
    UIApplication.sharedApplication().networkActivityIndicatorVisible = false 
}
最關(guān)鍵的一步到了

在ViewDidLoad( )方法里添加以下代碼

    //添加代理委托
    textField.delegate = self
    webView1.delegate = self

別看只有小小兩行蝠检,如果沒有添加代理委托,點(diǎn)擊Return鍵會(huì)出現(xiàn)鍵盤無法消失等問題
添加代理委托的方法還可以把 outlet 下的 + 拉到file's owner(一個(gè)透視的正方體)上即可

5. 配置 Info.plist

原因是IOS 9后挚瘟,蘋果為了增加安全性叹谁,強(qiáng)制所有的APP使用安全的HTTPS鏈接,而且是默認(rèn)使用的乘盖,好在蘋果還提供了一個(gè)變通的解決方案焰檩,允許明文HTTP通信。
需要在Info.plist文件里增加一項(xiàng)
App Transport Security Settings, 再點(diǎn)旁邊的 + 订框,出現(xiàn) Allow Arbitrary Loads析苫, 值改為YES 。

6. 最終效果

WebBrowser.gif


總結(jié)

本人為iOS開發(fā)新手一枚穿扳,寫的不好的或?qū)戝e(cuò)的地方藤违,希望各位大俠能幫忙指正。
各位大俠纵揍,如果覺得對自己有點(diǎn)用的顿乒,歡迎點(diǎn)個(gè)贊,也歡迎大家關(guān)注@陳炯
謝謝觀看此文泽谨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璧榄,一起剝皮案震驚了整個(gè)濱河市特漩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骨杂,老刑警劉巖涂身,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搓蚪,居然都是意外死亡蛤售,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門妒潭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悴能,“玉大人,你說我怎么就攤上這事雳灾∧穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵谎亩,是天一觀的道長炒嘲。 經(jīng)常有香客問我,道長匈庭,這世上最難降的妖魔是什么夫凸? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮阱持,結(jié)果婚禮上寸痢,老公的妹妹穿的比我還像新娘。我一直安慰自己紊选,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布道逗。 她就那樣靜靜地躺著兵罢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪滓窍。 梳的紋絲不亂的頭發(fā)上卖词,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音吏夯,去河邊找鬼。 笑死噪生,一個(gè)胖子當(dāng)著我的面吹牛裆赵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跺嗽,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼战授,長吁一口氣:“原來是場噩夢啊……” “哼页藻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起植兰,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤份帐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后楣导,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體废境,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年筒繁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了噩凹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膝晾,死狀恐怖栓始,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情血当,我是刑警寧澤幻赚,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站臊旭,受9級(jí)特大地震影響落恼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜离熏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一佳谦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滋戳,春花似錦钻蔑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至娄涩,卻和暖如春窗怒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蓄拣。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工扬虚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人球恤。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓辜昵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咽斧。 傳聞我的和親對象是個(gè)殘疾皇子路鹰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容