我的iOS 11+应用程序中有一个WKWebView,需要从本地内存HTML中加载自定义HTML。我可以使用工作正常的webView.loadHTMLString
或webview.load(data)
来完成此操作。
此HTML引用了一些必需的.js / .css / .png文件。对于普通的Web URL请求,WKWebView会即时执行此操作,并加载丢失的文件。但是在这种情况下,我需要拦截这些请求并提供文件内容,因为其中一些需要动态生成。因此,我需要提供的.css文件等实际上并未作为本地文件出现。
我认为这只是实现decidePolicyFor
协议的WKNavigationDelegate
方法的问题,但是由于某种原因,本地子请求没有触发此问题,那么我该怎么做呢?
我还尝试将HTML保存为本地临时文件,并使用webView.load(URLRequest)
加载它,但这也不会触发委托。如果它是一个Web URL,则可以正常触发。
答案 0 :(得分:0)
比方说,您渲染fullIosAppPath/page.html
,其文本类似于<img src="folder/1.png">
。
在这种情况下,您需要在应用程序的文件夹中拥有文件fullIosAppPath/folder/1.png
。 WKWebView
将在没有任何拦截的情况下加载1.png
-它只会渲染图像。
因此,您可以在呈现HTML文件之前先对其进行解析,然后生成/加载诸如1.png
之类的require资源。
您可以使用Kanna之类的框架来解析HTML文件,也可以自己编写一些简单的解析器。