代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Lanters

Swift4应用程序在加载本地HTML时崩溃[重复]

  •  1
  • Jeffrey Lanters  · 技术社区  · 7 年前

    在一个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 控制台中会出现before、in between和after行。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Suhit Patil    7 年前

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