iOS WKWebView的简单使用

WKWebView是在iOS8之后推出的,意在取代原本的UIWebView。相比于UIWebView,WKWebView的一个显著特点就是占用的系统内存大幅降低,大部分情况不会出现UIWebView峰值内存占用超高的问题。其主要特点有以下几个

  • 更多地支持HTML5的特性
  • 高达60帧的滚动刷新率
  • 使用JavaScript引擎,性能更好,可以实现更多功能
  1. 简单使用
  • 初始化上与原先的UIWebView没有较大的区别,简单创建NSUrlRequest就可以使用WKWebView加载。(WKWebView是在WebKit框架中的)
  • 其他的三个加载函数:
-(WKNavigation *)loadRequest:(NSURLRequest *)request;
-(WKNavigation *)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
-(WKNavigation *)loadData:(NSData *)data MIMEType:(NSString *)MIMEType characterEncodingName:(NSString *)characterEncodingName baseURL:(NSURL *)baseURL
  • 一些常用的属性
allowsBackForwardNavigationGestures:BOOL类型,是否允许左右划手势导航,默认不允许
estimatedProgress:加载进度,取值范围0~1
title:页面title
.scrollView.scrollEnabled:是否允许上下滚动,默认允许
backForwardList:WKBackForwardList类型,访问历史列表,可以通过前进后退按钮访问,或者通过goToBackForwardListItem函数跳到指定页面
  • 代理
  • 共有三个代理协议:WKNavigationDelegateWKUIDelegateWKScriptMessageHandler
  • 其中WKNavigationDelegate是与加载过程相关,WKUIDelegate与UI相关,即弹窗之类的控件,WKScriptMessageHandler必须实现,用来app与js交互

2.注意事项

  • 如果加载的链接是http的需要在plist文件中添加App Transport Security Settings字段并在其中添加Allow Arbitrary Loads,设置键值为YES
  • 不要直接使用如www.bing.com这类的地址,会加载不出来
  • 注意内存泄漏的问题,添加的代理使用完需要移除
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容