在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)
答案 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)
}