iOS WKWebView简单使用

本文深入探讨了自iOS8起引入的WKWebView组件,详细对比了其与UIWebView的优劣,介绍了如何在项目中配置并使用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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值