• iOS基础网络教程-Swift版本: 3.使用UIWebView加载本地的数据


    在前面, 我们使用了 UIWebView 加载了网络的数据, 其实 UIWebView不只是可以加载普通的网页, 还可以加载其他不同的文件, 比如视频, 音乐, PDF, Word等等文件都是可以的, 下面让我们来看看~~

    PS: 例子里的 PDF, Txt, doc 文件请自行准备, 里面的内容随便, 只要格式没有错误就ok


    1.代码实现

    遵守代理以及实现方法

    class ViewController: UIViewController, UIWebViewDelegate {
        // 设置一个 WebView 属性, 供全局使用
        var webView: UIWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // 实现自定义 WebView
            self.myWebView()
            // 使用二进制数据流加载本地数据
            self.loadDataFile()
        }
    }

    自定义UIWebView

        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)
        }

    使用二进制数据流加载数据

        // 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请求数据

        // 3.使用 HTML 请求数据
        func loadHTML() {
            // 应用场景: 截取网页中得某一部分显示
            // 例如: 网页的完整内容中包含广告! 加载完页面之后, 把广告这一部分的 HTML 页面删除, 然后再加载
            // 很多新闻类的应用都在使用
            webView.loadHTMLString("<p>abcef</p>", baseURL: nil)
        }

    最终效果过于繁琐, 这里就不展示了

    好了, 这次我们就讲到这里, 下次我们继续~~

  • 相关阅读:
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    python+requests+unittest 搭建接口自动化测试框架(四)
    python+requests+unittest 搭建接口自动化测试框架(三)
    python+requests+unittest 搭建接口自动化测试框架(二)
    python+requests+unittest 搭建接口自动化测试框架(一)
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4529334.html
Copyright © 2020-2023  润新知