iOS-WKWebView使用


使用コード:直接自分のプロジェクトに貼り付けて使用できます.h
#import "BaseViewController.h"

@interface LinkNewsController : BaseViewController
/**      */
@property (nonatomic, strong) NSString *link;

@end
m.
#import <WebKit/WebKit.h>
#import "MBProgressHUD.h"

@interface LinkNewsController ()<WKNavigationDelegate>{
    //  
    MBProgressHUD *_MB;
}
//    
@property (nonatomic, strong) WKWebView *WKWebView;
@end

@implementation LinkNewsController
#pragma mark -    
-(WKWebView *)WKWebView{
    if (_WKWebView == nil) {
        _WKWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 64, kScreenWidth, kScreenHeight-64)];
        NSLog(@"    -->link:%@",self.link);
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.link]];
        [_WKWebView setNavigationDelegate:self];
        [_WKWebView loadRequest:request];
    }
    return _WKWebView;
}
#pragma mark -     
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.view addSubview:self.WKWebView];
}
#pragma mark - WKNavigationDelegate
//    
-(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
    NSLog(@"didStartProvisionalNavigation");
    _MB = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
    [_MB setMode:MBProgressHUDModeIndeterminate];
    [_MB setLabelText:@"loading..."];
}
//    
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
    NSLog(@"didFinishNavigation__");
    [MBProgressHUD hideAllHUDsForView:self.navigationController.view animated:YES];
}
//    
-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error{
    NSLog(@"");
    [MBProgressHUD hideAllHUDsForView:self.navigationController.view animated:YES];
}
UICWebViewとWKWebViewの違いはWKWebViewのほうが速い(メモリ占有はUICWebViewの1/3~1/4しかないかもしれません).キャッシュがないので、UICWebView Delegateの中の方法をより細かく分解しました.WKWebViewは軽量級のUICbViewです.