遇到这个问题的时候,我是一脸懵的。
我把网址放到Mac的Safari和iOS的Safari,以及微信,qq的浏览器中全都是可以的,唯独放到我工程中的WKWebView中,就加载了一个标题,停下来了…Why?
后来,我无意中发现,网页加载失败后XCode给出了一个提示:
Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
于是围绕着这个log,我搜索了半天,尝试了不少方法,但还是无功而返。
接着,我带着问题到开发群里问了问,有人说,是否是iOS11 新提供的一些WKWebview的接口或者属性导致的问题呢?我就去把今年大会上的pdf翻出来看,也确实看到了几个新东西:
WKHTTPCookieStore
WKContentRuleList
WKURLSchemeHandler
在工程里查找了一下,Cookie设置倒是用到了,但是也没有对页面加载有影响的,下面两个没有使用到。
又一个可能解决途径被排除了。
这可如何是好,只能又在慢慢找。突然,同事给了我一个地址,说这里有解决方案,喜出望外:
http://www.cocoachina.com/bbs/read.php?tid-1726060-fpage-3-page-3.html
哇,原来是因为一个原生设置最小字体的问题,默认值为0,我们设置了为9.0
就是这句:
config.preferences.minimumFontSize = 9.0;
我用Safari调试了一下页面,发现页面里面确实有个地方,字体大小被设置成0了,但是里面并没有直接显示内容,字体大小属性被内部字体属性覆盖了,所以其他浏览器都是能够正常显示了,而在WKWebview中,网页加载到那里 就停下来 卡死了。
最后,我去掉了所有设置最小字体的相关部分,哈,网页就能正常加载了。
希望能对遇到相同问题的亲们有所帮助。
*相关参考网址:
1.https://devstreaming-cdn.apple.com/videos/wwdc/2017/220ugyk0ejmva/220/220_customized_loading_in_wkwebview.pdf
2.https://developer.apple.com/library/content/documentation/Extensions/Conceptual/ContentBlockingRules/CreatingRules/CreatingRules.html#//apple_ref/doc/uid/TP40016265-CH2-SW1
对了,对了,即使网页正常加载,那个XCode的log还会不时地出现…可是没有影响正常使用…原谅我吧…