css - 为什么当我的网页在 WKWebView 中加载时没有加载 CSS 文件,直到我延迟请求
问题描述
我正在开发一个iOS
应用程序,主要将我的网页加载到WKWebView
.
到目前为止,在我开始面临一个 CSS 文件未加载的奇怪问题之前,一切都很好。
该font-awesome.css
文件未加载,通常在第一个页面调用时加载。据我所知,服务器端没有任何可能影响font-awesome.css
文件加载的更改。
我通过在 iOS 应用程序代码中实现以下功能来拦截请求。但是对于第一个请求,我只是这样做,decisionHandler(.allow)
因为我不希望对第一个请求进行任何拦截。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
// For the first request it will go as is
decisionHandler(.allow)
}
一旦第一页加载到文件上WKWebView
,font-awesome.css
文件就没有加载,因此一些字体图标在页面上显示为正方形。
在这个问题上花了一些时间后,我尝试decisionHandler(.allow)
按如下方式延迟调用,然后它开始加载font-awesome.css
文件:
DispatchQueue.main.asyncAfter(deadline: .now() + 0.150) {
// I just added a delay of 150 ms and it starts loading the css file.
decisionHandler(.allow)
}
对我来说,目前很难弄清楚延迟和加载 css 文件之间的关系。
我需要就这种行为提出建议,为什么会发生这种情况,或者是否有其他原因导致这种情况发生,我只是通过延迟来解决问题。
更多更新:
我还有一个 Android 应用程序,它也在 WebView 中加载相同的网页,并且工作正常。
我通过发送请求和不延迟来检查 IIS 日志。随着延迟,我在 IIS 日志中清楚地看到它加载了很棒的字体,如下所示,但在没有延迟的情况下,我在 IIS 日志中看不到这个条目:
2020-11-23 13:44:36 10.100.2.72 获取 /Content/fonts/fontawesome-webfont.woff2 v=4.5.0 80 - 10.100.0.111 ....
解决方案
推荐阅读
- regular-language - 给定两个 DFA,如何检查第一个 DFA 生成的语言是否包含在第二个 DFA 生成的语言中?
- azure - 在 Bitbucket 和 Azure 中构建失败
- php - 缓存商店与其他变量 Laravel
- ruby-on-rails - Ruby on Rails RSpec 请求规范:无法传递参数
- sql - 我有一个场景,当我需要在更改某些列后从同一个表中插入表时。问题是关键列
- wordpress - WordPress:始终为自定义图像大小创建图像,即使上传的图像小于自定义大小
- segmentation-fault - 非-O0优化中没有空白打印语句的分段错误
- python-3.x - 如何从目录名+文件中获取目录名
- python-3.x - Python=>Pandas=> DataFrame==> 在执行 drop_duplicates() 时,
- mysql - Bigquery mysql调整活动工作日的日期