Search code examples
iosiphoneswiftios9wkwebview

WkWebView won't loadHTMLstring


I'm trying to show in a WkWebView an html page that I previously downloaded and stored in a String.

This is how I setup my WkWebView:

    webView = WKWebView(frame: self.blankView.frame)
    webView.navigationDelegate = self
    webView.loadHTMLString(tipShow.htmlString!, baseURL: nil)
    view.addSubview(webView)

The html string i'm trying to show is:

      <html> <style type="text/css"> * { -webkit-touch-callout: none; -webkit-user-select: none; /*
  Disable selection/copy in UIWebView */
     }
   </style> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,
 initial-scale=1">

<title>TITLE</title>

 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script
    src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> </head>

  <body>




<div data-role="page" id="page1">

    <div align=justify style="margin-left:20px; margin-right:20px">

        <font size="4.5" face="HelveticaNeue-Light"><br>

        <p>
THIS IS A TEST
   </p>
</div> </div>

</body></html>

When the WkWebView shows in my View it stands like this forever.

enter image description here

Someone can explain me why and how to solve this problem?


Solution

  • SWIFT

    You might be making it a bit too complicated. This worked for me ...

    First, import WebKit

    Second, create an @IBOutlet under your class:

    @IBOutlet weak var webView: WKWebView!
    

    Third, place the following in your viewDidLoad():

    let htmlString:String! = "\(YourString)"
    webView.loadHTMLString(htmlString, baseURL: webView.loadHTMLString(htmlString, baseURL: Bundle.main.bundleURL))