1. 程式人生 > >iOS-WKWebView使用

iOS-WKWebView使用

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使用