iOS WKWebView简单使用

WKWebView简单介绍

  • 自iOS8开始,苹果推出了新框架WebKit,提供了替换UIWebView的组件WKWebView,一个用来展示网页的组件。WKWebView解决了UIWebView加载速度慢,占用内存多,优化困难等问题,可以说,WKWebView是目前App内部加载网页的最佳选择。
  • WKWebView类主要用于展示网页,因此在WKWebView类中提供了用于网页展示以及控制的方法,同时在WKWebView中也支持执行JavaScript代码。

使用方法

准备

在项目的Info.plist文件中,找到APP Transport Security Settings,如果没有需要创建(+),添加Allow Arbitary loads 键值,类型为Boolean,并将它的值设为YES
在这里插入图片描述

加载网页

	WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://m.douban.com/movie/review/1253346"]];
    [webView loadRequest:request];
    [self.view addSubview:webView];

在这里插入图片描述

加载文件

WKWebView除了加载网页的功能外,还可以加载文件

	self.webView=[[WKWebView alloc] initWithFrame:self.view.bounds];
    
    NSURL *url=[NSURL fileURLWithPath:@"/Users/cinderella/Downloads/yy.jpg"];
    [self.webView loadFileURL:url allowingReadAccessToURL:url];
    
    [self.view addSubview:_webView];

在这里插入图片描述

界面返回到app

WKWebView不能直接返回,需要使用其他工具,在例子里我使用导航控制器来返回到app

代理协议

WKNavigationDelegate是WKWebView最常用到的代理协议,以下几个代理方法为常用的

页面开始加载时调用
- (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;

文章参考:IOS WKWebView

猜你喜欢

转载自blog.csdn.net/streamery/article/details/103220516