美文网首页
Swift - 网页控件(UIWebView)加载本地数据、文件

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

作者: 小驴拉磨 | 来源:发表于2020-06-18 16:35 被阅读0次

使用UIWebView加载本地数据或资源有如下三种方式:
1、使用 loadHTMLString 方法加载HTML内容
2、使用 loadRequest 方法加载本地资源(也可用于加载服务器资源)
3、先将内容保存成 Data 数据,再使用 load 方法加载
使用样例
通过 UISegmentedControl 分别控制网页控件“显示HTML”“显示PDF”“loadData显示PDF”


image.png
import UIKit
import WebKit

class WebViewController: UIViewController {
    
    /// 分页选择器
    private let loadtype:UISegmentedControl = {
        let control = UISegmentedControl(items: ["显示HTML","显示PDF","loadData显示PDF"])
        control.frame =  CGRect(x: 0, y: 64, width: UIScreen.main.bounds.size.width, height: 44);
        control.addTarget(self, action: #selector(typeChanged(_:)), for: UIControl.Event.valueChanged)
        return control
    }()
    
    //// webview
    private let webView: WKWebView = {
        let view = WKWebView(frame: CGRect(x: 0, y: 110, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height - 110))
        return view;
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(loadtype)
        view.addSubview(webView)
        
        //默认选中分段控件的第一项
        loadtype.selectedSegmentIndex = 0
        typeChanged(loadtype)
    }
    
    @objc func typeChanged(_ sender:UISegmentedControl)
    {
        let index = sender.selectedSegmentIndex
        print(index)
        switch index
        {
        case 0: //在 UIWebView 中显示 HTML 内容
            let html = "<h1>欢迎来到:<a href='https://www.jianshu.com/u/adedbfe99f1c'>小驴拉磨</a></h1>";
            webView.loadHTMLString(html,baseURL:nil)
        case 1: //在 UIWebView 中显示 PDF
            let path = Bundle.main.path(forResource: "程序员的思维训练——开发认知潜能的九堂课", ofType:"pdf")
            let urlStr = URL(fileURLWithPath: path!)
            print(urlStr)
            webView.load(URLRequest(url:urlStr))
        case 2: //在 UIWebView 中显示 PDF, 但是是通过 loadData 方式加载
            let path = Bundle.main.path(forResource: "程序员的思维训练——开发认知潜能的九堂课", ofType:"pdf")
            let urlStr = URL(fileURLWithPath: path!)
            let data = try! Data(contentsOf: urlStr)
            webView.load(data, mimeType: "application/pdf", characterEncodingName: "utf-8", baseURL: NSURL() as URL)
        default:
            print("是不是出错了?")
        }
    }
}

相关文章

网友评论

      本文标题:Swift - 网页控件(UIWebView)加载本地数据、文件

      本文链接:https://www.haomeiwen.com/subject/voruxktx.html