Swift中WebView的應用

來源:互聯網
上載者:User

標籤:

WebView控制項是做網路應用開發中使用最多的控制項,直接在WebView內部指定一個網頁地址就可以訪問網頁了,同時也可以實現UIWebViewDelegate協議實現相應的方法去控制內容的載入和處理。著名的PhoneGap開發的應用,其外殼重要的組件也是WebView控制項。

        在viewDidLoad方法內添加以下代碼就可以完成簡單的網頁

        var webView = UIWebView(frame: CGRectMake(0, 0, 600, 600))

        var url = NSURL(string: "http://www.imoneyfans.com")

        webView.loadRequest(NSURLRequest(URL: url!))

        self.view.addSubview(webView)

就像上面載入網頁時用到的loadRequest方法用於載入指定url對象所設定的網頁內容。方法loadHTMLString則用於載入指定的HTML代碼片斷。

      var html = "<section><img src=\"http://img1.gtimg.com/12/1224/122455/12245555_980x1200_0.jpg\"</section>"

      webView.loadHTMLString(html, baseURL: nil)

loadData也是用於載入指定內容,如將本地的一個html檔案轉成NSDATA對象後顯示在WebView上

        var file = NSBundle.mainBundle().pathForResource("test", ofType: "html")

        var url = NSURL.fileURLWithPath(file!)

        var data = NSData(contentsOfURL: url!)

        webView.loadData(data, MIMEType: "text/html", textEncodingName: "utf-8", baseURL: nil)

對於檢測網頁的內容是否是可互動的類型,如果點擊網頁上一個Address可以調出Map,可以指定要探測的資料類型可選的值有連結(Link)、地址(Address)、電話號碼(PhoneNumber)等,也可以指定為All探測所有的類型,在預設狀態下電話號碼是可以點擊的,以下是探測電話號碼

webView.dataDetectorTypes = UIDataDetectorTypes.PhoneNumber

還有很多方法,如

webview.reload()

webview.stopLoading()

webview.goBack()

webview.goForward()

如果要實現更進階的功能就要實現UIWebViewDeleage這個協議。

 

Swift中WebView的應用

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.