WKWebView

WKWebView是Webkit框架中提供的类。WKWebView与之前的UIWebView相比做了很多的功能提升,主要体现在以下几个方面。

在性能、稳定性、功能方面有很大提升,减少了加载网页时占用的内存。
更好地支持HTML5的特性。
高达60fps的滚动刷新率以及内置手势。
允许JavaScript的Nitro库加载并使用。
将UIWebViewDelegate与UIWebView重构成了14类与3个协议。

WKWebView常用属性
// 网页标题
@property(nullable, nonatomic, readonly, copy) NSString *title;
// 网页的URL
@property(nullable, nonatomic, readonly, copy) NSURL *URL;
// 网页是否在加载中
@property(nonatomic, readonly, getter=isLoading) BOOL loading;
// 是否可以回退
@property(nonatomic, readonly) BOOL canGoBack;
// 是否可以前进
@property(nonatomic, readonly) BOOL canGoForward;
// 标识是否支持左、右滑动手势来进行网页后退、前进。
@property(nonatomic) BOOL allowsBackForwardNavigationGesture;
// 与WKWebView相关联的scrollView。
@property(nonatomic, readonly, strong) UIScrollView *scrollView;
// UI代理属性,用于响应用户交互。
@property(nonatomic, readonly, weak) id <WKUIDelegate> UIDelegate;
.WKWebView常用方法
// WKWebView初始化方法。
-(instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuretion NS_DESIGNATED_INITIALIZER;
// 通过URL加载网页视图。
-(nullable WKNavigation *)loadRequest:(NSURLRequest *)request;
// 执行网页后退
-(nullable WKNavigation *)goBack;
// 执行网页前进
-(nullable WKNavigation *)goForward;
// 执行网页刷新
-(nullable WKNavigation *)reload;
// 停止加载
-(void)stopLoading
// 执行JavaScript代码
-(void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError *_Nullable error))completionHandler;

2 WKWebView的基本使用——加载网页

-(void)viewDidLoad {
    [super viewDidLoad];
    // 实例化
    WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    // 创建请求
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"www.csdn.com"]];
    // 加载网页
    [webView loadRequest:request];
    [self.view addSubView:webView];
}

3 网页浏览控制

4 加载本地文件

WKWebView除了能够加载网页之外,还能够加载多种类型的文件,支持的格式涵盖了pdf、word、txt、图片等。加载文件需要使用到loadFileURL:allowingReadAccessToURL:方法

-(nullable WKNavigation *)LoadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL;
//
-(void)viewDidLoad {
    [super viewDidLoad];
    // 实例化
    WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.width)];
    // 创建url
    NSURL *url = [NSURL fileURLWithPath:@"/Users/username/Desktop/html"];
    // 加载文件
    [webView loadFileURL:url allowingReadAccessToURL:url];
    //
    [self.view addSubView:webView];
}

5 WKWebView代理协议之WKNavigationDelegate

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值