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

注:代码已升级至Swift4

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

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

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

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")
        }
    }
}
上一篇 Swift UI - 工具条(UIToolbar)及工具条按钮(UIBarButtonItem)
下一篇 Swift UI - 使用UIWebView和UIToolbar制作一个浏览器
目录
文章列表
1 fastjson可正常反序列化字符串null
fastjson可正常反序列化字符串null
2
线上诊断神器BTrace快速入门
线上诊断神器BTrace快速入门
3
Groovy代码示例 - 文件操作
Groovy代码示例 - 文件操作
4
Node.js包管理工具yarn安装使用
Node.js包管理工具yarn安装使用
5
高中数学基础:随机变量及其分布
高中数学基础:随机变量及其分布
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。