最近在写一个套客APP,所以需要用到UIWebView,但是最后我放弃了UIWebView,那是因为我在使用的过程中遇到了一个问题,那就是当我利用UIWebView加载网页之后,在切换上面的tabbard的话,会出现闪屏的情况,就这个原因我查了好久,也是没有什么收获,最后我把UIWebView替换成WKWebView之后,这个问题就消失了,而且明显比UIWebView加载网页的速度快.那么我今天就来说说WKWebView的基本使用方法 1.就是加载网页
- (void)viewDidLoad {
[super viewDidLoad];
WKWebView *webView = [[WKWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
NSString *urlString = @"https://github.com";
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
[self.view addSubview:webView];
webView.navigationDelegate = self;
self.webView = webView;
}
2.加载的状态回调(WKNavigationDelegate) 用来追踪加载过程(页面开始加载、加载完成、加载失败)的方法: //页面开始加载时使用
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation; //当内容开始返回时调用
- (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation; //当页面加载完之后调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation; //当页面加载失败时调用
- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error; 页面跳转的代理方法
- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(null_unspecified WKNavigation *)navigation;
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler;
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;