ios – 当WKWebView每次完成加载时检测

前端之家收集整理的这篇文章主要介绍了ios – 当WKWebView每次完成加载时检测前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在iPad上的iOS8上运行了WKWebView应用程序(标准iPad UserAgent:“Mozilla / 5.0(iPad; cpu OS 8_1_1,如Mac OS X)AppleWebKit / 600.1.4(K HTML,像Gecko)版本/ 8.0 Mobile / 12B436 Safari / 600.1 0.4\” ).我已经尝试了所有的代理和听众,我可以想到,尝试检测页面何时加载完成.这是问题:

>打开您的WKWebView并转到Google.以下称为:

_decidePolicyForNavigationAction
_didStartProvisionalNavigation
_ didFinishNavigation

>在Google中输入“YouTube”:
只有_decidePolicyForNavigationAction被调用.没有做过创新导航或没有完成导航
>在Google中点击YouTube.以下称为:

_didStartProvisionalNavigation
_decidePolicyForNavigationAction
_ didFinishNavigation

>从现在开始,YouTube内没有任何东西被调用.点击一个YouTube视频,没有doStartProvisionalNavigation或didFinishNavigation.此外,不再调用webview.loading观察器.甚至决定PolicyForNavigationAction只是随时被调用.无论如何…每次点击之后,webView.backForwardList.currentItem都会被更新,所以必须检测页面何时完成加载?

这种行为也发生在许多其他网站上(例如Vimeo).我知道这种类型的网站每次都没有更新主框架,但是当这种状态下WKWebView的加载启动/完成“限制”时,是否缺乏检测能力?

我想要实现的是:还有另一种方法来检测导航是否完成,每个时间在Java移动网站,如YouTube / Vimeo:

>使用NSURLProtocol或类似?
>或者可能是一种检测何时的方法
webView.backForwardList.currentItem是否更新?

感谢任何帮助.

解决方法

我不知道页面加载时要做什么,但希望观察这些属性可以帮助您:
webView.addObserver(self,forKeyPath: "estimatedProgress",options: .New,context: nil)
webView.addObserver(self,forKeyPath: "loading",forKeyPath: "title",forKeyPath: "canGoBack",forKeyPath: "canGoForward",context: nil)

猜你在找的iOS相关文章