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

标签 ios swift webview wkwebview

<分区>

在开发网络应用程序数周期间,我在我的 (WKWebView) WebView 中使用了一个外部 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)

最佳答案

您需要从文件中加载字符串内容,使用 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) 
}

关于ios - Swift4 应用程序在加载本地 HTML 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47633457/

相关文章:

android - 网址以全屏方式打开而不是 Webview

ios - 当应用程序进入前台时,AVPlayer 状态会更新

ios - 在 iOS 上静音 JWPlayer (Swift)

swift - 如何在没有动画的情况下快速显示/隐藏键盘?

Android:如何将页面加载到 WebView 中,然后对其应用一些自定义 css?

javascript - 如何从外部 javascript 函数调用 typescript 函数

ios - swift:从 JSON 解析的 Alphabetiz 数据

ios - 居中对齐 UIAlertController 中的图像操作

java - 快速将字符串转换为数据库 HTTP.UTF8

iOS - 在 UIImageView 中检索并显示来自 Parse 的图像(Swift 1.2 错误)