在Swift

时间:2018-07-19 10:08:07

标签: html ios swift uiwebview wkwebview

我的项目包中存储了一个.html文件。当我在WebView中加载它时(UIWebview / WKWebview),数据已加载,但其中的表结构不可见。表格边框,列,行。这些值只是浮动的。在Chrome浏览器中,它可以正常打开。

let myURL = Bundle.main.url(forResource: "prescription", withExtension: "html")
    let myURLRequest:URLRequest = URLRequest(url: myURL!)
    webView.loadRequest(myURLRequest)

Chrome浏览器This is how it looks in browser

iOS应用UIWebView:

This is how it looks in UIWebview

Html页面已做出响应,以适合任何大小,但我无法作为Web正确加载到UIWebview中。 我需要将文件存储在本地,因为我需要对其值进行更改并在webview上显示。

2 个答案:

答案 0 :(得分:1)

找到了解决方案:  如果要应用一些本地css,其路径在HTML文件中。 即

  1. 将该css文件“ myDefault.css”添加到您的xcode项目目录中。
  2. 将HTML转换为字符串,并将HTML文件中的CSS路径替换为本地路径。 :
  3. 使用基本URL将HTML的内容加载到UIWebView。 (将本地文件路径提供为baseUrl很重要)

    {{name:user1,distance:5km},(name:user2,distance:7 km)}
    

答案 1 :(得分:0)

将本地内容加载到WKWebView时,应使用loadHTMLString(_:baseURL:)而不是loadRequest。第一个功能允许您提供基本URL,您也将其指向捆绑软件-因此,您显然需要将所有相关文件添加到应用程序捆绑软件中。

guard let indexPath = Bundle.main.path(forResource: "index", ofType: "html"),
   let content =  try String(contentsOfFile: indexPath, encoding: .utf8),
   let baseUrl = URL(fileURLWithPath: indexPath) else {
        // Error handling
   }
webView.loadHTMLString(content, baseURL: baseUrl)