使用WKWebView需先导入WebKit.framework
#import "WKWebViewViewController.h"
#import <WebKit/WebKit.h>
@interface WKWebViewViewController () <WKNavigationDelegate>
@property (strong, nonatomic) WKWebView *webView;
@end
@implementation WKWebViewViewController
- (void)viewDidLoad {
[super viewDidLoad];
if (!_webView) {
_webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
_webView.navigationDelegate = self;
}
[self.view addSubview:_webView];
[self loadNativeHFive];
}
// 加载本地H5
- (void)loadNativeHFive {
NSString *hFivePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:hFivePath];
// 加载方式一
NSString *htmlString = [NSString stringWithContentsOfFile:hFivePath encoding:NSUTF8StringEncoding error:nil];
[_webView loadHTMLString:htmlString baseURL:url];
/*
// 加载方式二
[_webView loadRequest:[NSURLRequest requestWithURL:url]];
// 加载方式三
if (@available(iOS 9.0, *)) {
[_webView loadFileURL:url allowingReadAccessToURL:url];
} else {
// Fallback on earlier versions
}
// 加载方式四
NSData *htmlData = [NSData dataWithContentsOfURL:url];
if (@available(iOS 9.0, *)) {
[_webView loadData:htmlData MIMEType:@"text/html" characterEncodingName:@"UTF-8" baseURL:url];
} else {
// Fallback on earlier versions
}
*/
}
#pragma mark - WKNavigationDelegate
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation {
NSLog(@"开始加载");
}
- (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation {
NSLog(@"内容开始返回");
}
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation {
NSLog(@"加载完成");
}
- (void)webView:(WKWebView *)webView didFailLoadWithError:(nonnull NSError *)error {
NSLog(@"加载失败 error : %@",error.description);
}
@end
示意图: