WkWebView无法加载HTML字符串

18
我正在尝试在WkWebView中展示一个之前下载并存储在字符串中的html页面。
这是我设置WkWebView的方式:
    webView = WKWebView(frame: self.blankView.frame)
    webView.navigationDelegate = self
    webView.loadHTMLString(tipShow.htmlString!, baseURL: nil)
    view.addSubview(webView)

我想要显示的HTML字符串是:
      <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>

当WkWebView出现在我的视图中时,它会一直保持这样。

enter image description here

有人能解释一下为什么以及如何解决这个问题吗?
3个回答

21

SWIFT(斯威夫特)

你可能把它弄得有点复杂了。这对我有效...

首先,引入WebKit

其次,在你的类下创建一个 @IBOutlet:

@IBOutlet weak var webView: WKWebView!

第三步,在viewDidLoad()中放置以下内容:

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

4
我错过了正确的基础URL。 - Carioni
有人能提供这个的Objective C版本吗? - Renascent

17

我遇到了和你一样的问题!关键问题出现在项目设置中:

检查你的 Xcode 项目 > 目标 > 功能 > 应用程序沙盒

确保你已经勾选了 NetWork ✅ 输入 和输出连接 ✅ 。

参见下面的截图:

输入图片说明


2
这不是iOS,对吧? - shallowThought
1
关于浅层的问题:这个案例是针对OSX WKWebView的,但我猜在iOS上会类似。 - Corxit Sun
修复了...我只需要输出,但是为什么我需要具备从应用程序生成字符串并使用loadHTMLString()加载的能力呢... - Paul Stevenson

1
我知道现在可能有些晚了,但这是所请求的Objective-C版本:
@property (weak, nonatomic) IBOutlet WKWebView *webView;
[self.webView loadHTMLString:strTemplateHTML baseURL:[NSBundle mainBundle].bundleURL];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接