学习---WebKit(进度条)
2017-09-21 本文已影响45人
F麦子
WebKit(WKScriptMessageHandler)
仿照qq或微信的进度条,我们也为我们的浏览器添加进度条功能。
1 WKWebView相关属性
在WKWebView就有一个关于网页加载进度的属性。
// 网络加载进度0~1
@property (nonatomic,readonly) double estimatedProgress;
我们所要做的是使用KVO监听这个属性,然后显示到进度条上。
2 创建进度条
这里我们就是使用控件UIProgressView创建一个进度条,你还可以自行设计更精美的进度条。
2.1 强引用进度条
由于我们需要时刻更新进度条的数据,故我们使用强引用,设置进度条。
@property(nonatomic,strong) UIProgressView *progressView;///< 进度条
2.2 懒加载进度条
我们使用懒加载的方式加载进度条。实现get方法。
3 KVO实现进度条
3.1 KVO监听
在viewDidLoad()中,我们监听WKWebView的estimatedProgress属性。
3.2 KVO回调实现
所有类的KVO回调都是实现- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context方法。
添加方法。
在这里我们分别判断了初始和终止状态,在终止状态我们会1秒后隐藏progressView;初始状态再显示。
到这里WebKit框架的讲解就完毕了,希望给你带来帮助。