我有一个简单的视图控制器,可以加载本地托管在我的计算机上的html文件:
class WebViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView()
...
let url = URL(string: "http://localhost:8002/myendpoint")
let request = URLRequest(url: url!)
webView.load(request)
}
}
加载的html是:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Hello World!
<script type="text/javascript" src="/path/to/js/file.js"></script>
</body>
</html>
问题在于内容(“ Hello World!”)在脚本加载之前(大约需要3秒钟)才呈现。如果我注释掉script标签,它将立即加载。
使用script标签,它可以在Android上正常运行(内容应立即加载)。
我的理解是HTML应该按顺序发生,所以“ Hello World!”应该在加载script标签之前(在Android系统上工作的方式)呈现。
是否有一种方法可以强制在WKWebView
上按顺序加载内容?我发现suppressesIncrementalRendering,但是默认值已经为false
,并且更改或明确设置它似乎无济于事。
我也已经在脚本标签上尝试过async
和defer
,但是它们都不起作用。