在UIWebView中加载本地HTML文件

时间:2017-05-03 00:32:42

标签: swift uiwebview swift2

我无法加载本地HTML文件。这是我的代码。请帮忙。

let URL = NSBundle.mainBundle().pathForResource("index2", ofType: "html")
let request = NSURLRequest(URL: url!)
Webview.loadRequest(request)

使用以下代码。我已经设法加载html文件,但它没有加载CSS!

让htmlFile = NSBundle.mainBundle()。pathForResource(“index1”,ofType:“html”)         让html =试试? String(contentsOfFile:htmlFile!,encoding:NSUTF8StringEncoding)         GSFWebView.loadHTMLString(html!,baseURL:nil)

2 个答案:

答案 0 :(得分:0)

只需在ViewDidLoad中编写此代码,我已添加此页面的URL作为示例,只需将其替换为您的。在故事板上,您不需要做任何事情,如果您在视图控制器上添加了任何额外的视图作为网站的容器,那么将我的代码中的self.view替换为您的视图。

    let myWebView:UIWebView = UIWebView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
    //add your url on line below
    myWebView.loadRequest(URLRequest(url: URL(string: "https://stackoverflow.com/questions/26647447/load-local-html-into-uiwebview-using-swift")!))
    self.view.addSubview(myWebView)

如果您想从本地文件加载页面,可以通过这种方式定义URL来实现。

Swift 2

  let url = NSBundle.mainBundle().URLForResource("webFileName", withExtension:"html") 

Swift 3

  let url = Bundle.main.url(forResource: "webFileName", withExtension: "html")

答案 1 :(得分:0)

我只需要将此代码添加到viewDidLoad方法:

1-首先,您必须从捆绑软件中获取本地URL。 (以前,我将index.html文件添加到了项目中,并在询问时进行复制)

2-然后,您必须创建要从webView加载的请求URL。

3-毕竟,从主视图添加作为子视图创建的新webView。

对我有用。

if let url = Bundle.main.url(forResource: "index", withExtension: "html"){// 1st step
        webView.loadFileURL(url, allowingReadAccessTo: url)

        let request = URLRequest(url: url as URL) // 2nd step
        webView.load(request)
        self.view.addSubview(self.webView) // 3rd step
}