Swift UI - 网页控件(UIWebView)加载本地数据,文件

注:代码已升级至Swift4

使用UIWebView加载本地数据或资源有如下三种方式:

  • 使用loadHTMLString方法加载HTML内容
  • 使用loadRequest方法加载本地资源(也可用于加载服务器资源)
  • 先将内容保存成Data数据,再使用load方法加载

使用样例:通过 UISegmentedControl分别控制网页控件“显示HTML”、“显示PDF”、“loadData显示PDF”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import UIKit

class ViewController: UIViewController {

@IBOutlet var webView:UIWebView!
@IBOutlet var loadTypeSegment:UISegmentedControl!

override func viewDidLoad() {
super.viewDidLoad()

//默认选中分段控件的第一项
loadTypeSegment.selectedSegmentIndex = 0
typeChanged(loadTypeSegment)
}

@IBAction func typeChanged(_ sender:UISegmentedControl) {
let index = sender.selectedSegmentIndex
print(index)
switch index {
case 0: //在 UIWebView 中显示 HTML 内容
let html = "<h1>欢迎来到:<a href='http://hangge.com'>航歌</a></h1>";
webView.loadHTMLString(html, baseURL:nil)
case 1: //在 UIWebView 中显示 PDF
let path = Bundle.main.path(forResource: "test", ofType:"pdf")
let urlStr = URL(fileURLWithPath: path!)
print(urlStr)
webView.loadRequest(URLRequest(url:urlStr))
case 2: //在 UIWebView 中显示 PDF, 但是是通过 loadData 方式加载
let path = Bundle.main.path(forResource: "test", ofType:"pdf")
let urlStr = URL(fileURLWithPath: path!)
let data = try! Data(contentsOf: urlStr)
webView.load(data, mimeType: "application/pdf", textEncodingName: "utf-8",
baseURL: NSURL() as URL)
default:
print("Segmente Error")
}
}
}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :