iOS基礎網絡教程-Swift版本: 3.使用UIWebView加載本地的數據

在前面, 咱們使用了 UIWebView 加載了網絡的數據, 其實 UIWebView不僅是能夠加載普通的網頁, 還能夠加載其餘不一樣的文件, 好比視頻, 音樂, PDF, Word等等文件都是能夠的, 下面讓咱們來看看~~web

PS: 例子裏的 PDF, Txt, doc 文件請自行準備, 裏面的內容隨便, 只要格式沒有錯誤就ok編程


1.代碼實現

遵照代理以及實現方法服務器

class ViewController: UIViewController, UIWebViewDelegate {
    // 設置一個 WebView 屬性, 供全局使用
    var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // 實現自定義 WebView
        self.myWebView()
        // 使用二進制數據流加載本地數據
        self.loadDataFile()
    }
}

自定義UIWebViewmarkdown

func myWebView(){

        // 初始化 WebView
        webView = UIWebView(frame: self.view.bounds)

        // 設置代理
        webView.delegate = self

        // 檢車 WebView 裏顯示的內容, 符合條件就高亮顯示
        webView.dataDetectorTypes = UIDataDetectorTypes.All

        //添加到 self.view
        self.view.addSubview(webView)
    }

使用URL加載本地的數據網絡

// 1.使用 URL 請求數據
    func loadFile() {
        // 1.設置 URL 地址
        // 應用場景: 加載從服務器下載的文件, 好比 PDF, 或者word, 圖片等等文件
        let path = NSBundle.mainBundle().URLForResource("華爲軟件編程規範總則.doc", withExtension: nil)

        // 設置請求 URl
        let request = NSURLRequest(URL: path!)

        // 發送請求
        webView.loadRequest(request)
    }

使用二進制數據流加載數據ide

// 2.使用同步請求請求數據
    func loadDataFile() {
        // 1.設置 URL 地址
        // 應用場景: 加載從服務器下載的文件, 好比 PDF, 或者word, 圖片等等文件
        let path = NSBundle.mainBundle().URLForResource("華爲軟件編程規範總則.doc", withExtension: nil)

        // 2.設置請求 URl
        let request = NSURLRequest(URL: path!)

        // 3.設置服務器響應對象
        var response: NSURLResponse?

        // 4.從服務器取出的 NSData 數據
        let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil)

        // 5.發送 NSData 同步數據請求
        // 第一個參數是: NSData, 第二個參數是:NSURLResponse, 第三個參數是: UTF8編碼, 第四個參數暫時無需理會
        webView.loadData(data, MIMEType: response?.MIMEType, textEncodingName: "UTF8", baseURL: nil)

        println(response?.MIMEType)
    }

使用HTML請求數據ui

// 3.使用 HTML 請求數據
    func loadHTML() {
        // 應用場景: 截取網頁中得某一部分顯示
        // 例如: 網頁的完整內容中包含廣告! 加載完頁面以後, 把廣告這一部分的 HTML 頁面刪除, 而後再加載
        // 不少新聞類的應用都在使用
        webView.loadHTMLString("<p>abcef</p>", baseURL: nil)
    }

最終效果過於繁瑣, 這裏就不展現了編碼

好了, 此次咱們就講到這裏, 下次咱們繼續~~spa

相關文章
相關標籤/搜索