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)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...