加载本地HTML时Swift4应用程序崩溃

时间:2017-12-04 12:31:23

标签: ios swift webview wkwebview

在Web应用程序上工作数周时,我在我的(WKWebView)Web视图中使用了外部URL。现在我正在向生产方向发展,我想嵌入webapp并加载本地网页。

我只是搬离了

let url = URL(string: "http://hidden-url.com/")
self.webView!.load(URLRequest(url: url!))

let url = URL(string: Bundle.main.path(forResource: "index_prod", ofType: "html")!)
self.webView!.load(URLRequest(url: url!))

但这导致我的应用程序崩溃。我确定文件已正确加载,print之前,之间和之后的行将出现在控制台中。

错误:Thread 1: EXC_BAD_ACCESS (code=1, address=0x10)

1 个答案:

答案 0 :(得分:1)

您需要从文件中加载字符串内容,使用contentsOfFile方法获取字符串并使用webview的loadHTMLString方法,打印错误或创建一些显示错误的枚举

enum WebError: Swift.Error {
    case fileNotFound(name: String)
    case parsing(contentsOfFile: String)
}

guard let url = Bundle.main.path(forResource: "index_prod", ofType: "html") else {
   throw WebError.fileNotFound(name: file) // throw file not found error 
}

do {
      let html = try String(contentsOfFile: url)
      self.webView.loadHTMLString(html, baseURL: Bundle.main.bundleURL)
} catch {
      throw WebError.parsingError(contentsOfFile: file) 
}