iOS-WKWebView使用
阿新 • • 發佈:2017-08-13
show asc ror keyword con mode hid kit rect
使用代碼:可直接粘貼到自己項目中使用
.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__");
[_MB hide:YES];
}
//載入失敗
-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error{
NSLog(@"");
[_MB hide:YES];
}
UIWebView 和 WKWebView 的差別
WKWebView 更快(占用內存可能僅僅有 UIWebView 的1/3~1/4),沒有緩存。更為仔細地拆分了 UIWebViewDelegate 中的方法。
WKWebView 是輕量級的 UIWebView。
iOS-WKWebView使用