在前面, 我们使用了 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)
}
最终效果过于繁琐, 这里就不展示了
好了, 这次我们就讲到这里, 下次我们继续~~