UIWebView自iOS2就有,WKWebView从iOS8.0(2014年9月WWDC)才有,毫无疑问,WKWebView相对UIWebVIew要优秀得多,主要表现在以下几点: 1,WKWebView...以上介绍了WKWebView的优点,但是其也有以下缺点: 1,WKWebView需要iOS9及更高的版本,虽然WKWebView是在iOS8之后引入的,但是iOS8的版本存在重大限制,比如无法访问本地存储的文件...WKWebView的用法 ? WKWebView API WKWebView对象可以显示交互式Web内容,例如应用内浏览器。你可以使用WKWebView类将web内容嵌入到你的应用程序中。...*)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation { } //收到服务器重定向之后调用...(接收到服务器跳转请求) - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(
WKWebView API WKWebView的头文件声明: // webview 配置,具体看下面 @property (nonatomic, readonly, copy) WKWebViewConfiguration...// 这个是决定是否Request - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction...webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation; // 当main frame接收到服务重定向时...*)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration...*)frame completionHandler:(void (^)(void))completionHandler; // 调用JS的confirm()方法 - (void)webView:(WKWebView
WKWebView主要涉及到以下类或协议,各部分可能互相依赖,文章按照apple文档的划分对每一个模块进行了详细的解释 WKWebView 配置和偏好 WKWebViewConfiguration WKPreferences...一个WKWebView对象显示交互式的web内容,比如在应用程序内的浏览器。...您可以使用WKWebView类来在应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...从iOS 8.0和OS X 10.10开始,建议使WKWebView在应用程序中展示web内容,建议不要使用UIWebView或WebView。...创建一个新的WebView - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration
在UIWebView下,可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses];//清除缓存 WKWebView清除cookies的方法...cookies]) { NSLog(@"%@", cookie); } 参考链接:http://stackoverflow.com/questions/31289838/how-to-delete-wkwebview-cookies
1、WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering...2、WKWebView Cookie 问题 Cookie 问题是目前 WKWebView 的一大短板 2.1、WKWebView Cookie存储 业界普遍认为 WKWebView 拥有自己的私有存储,...中,而在 iOS 10 上,JS 执行 document.cookie 或服务器 set-cookie 注入的 Cookie 会很快同步到 NSHTTPCookieStorage 中,FireFox...3、WKWebView NSURLProtocol问题 WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在 WKWebView 上直接使用 NSURLProtocol...虽然 WKWebView 坑比较多,但是相对 UIWebView 在内存消耗、稳定性方面还是有很大的优势。尽管苹果对 WKWebView 的开发进度过于缓慢,但相信 WKWebView 才是未来。
1、WKWebView白屏问题 WKWebView自诩拥有更快的加载速度,更低的内存占用,但实际上WKWebView是一个多进程组件,Network Loading以及UI Rendering在其它进程中执行...2、WKWebView Cookie问题 Cookie问题是目前WKWebView的一大短板 2.1、WKWebView Cookie存储 业界普遍认为WKWebView拥有自己的私有存储,不会将Cookie...中,而IOS10上,JS执行document.cookie或服务器set-cookie注入的Cookie会很快同步到NSHTTPCookieStorage中,FireFox工程师曾建议通过reset WKProcessPool...3、WKWebView NSURLProtocol问题 WKWebView在独立于app进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在WKWebView上直接使用NSURLProtocol...尽管苹果对WKWebView的开发进度过于缓慢,但相信WKWebView才是未来。—>iOS 11 WKWebView 新特性
WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。...示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...和OC的交互 5、本地HTML文件的实现 一、WKWebView涉及的一些类 WKWebView:网页的渲染与展示 注意: #import //初始化...navigation withError:(NSError *)error { [self.progressView setProgress:0.0f animated:NO]; } // 接收到服务器跳转请求即服务重定向时之后调用...WKNavigationActionPolicyCancel); }else{ decisionHandler(WKNavigationActionPolicyAllow); } } // 根据客户端受到的服务器响应头以及
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...二、WKWebView 支持更多的HTML5的特性 高达60fps滚动刷新频率与内置手势 与Safari相容的JavaScript引擎 在性能、稳定性方面有很大提升占用内存更少 协议方法及功能都更细致...三、WKWebView的代理方法 /*!...-> Void) 五、WKWebView与JS的交互使用 首页创建html文件,代码如下: <meta charset
页面禁用长按事件 方式一 禁用长按选择 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)...duration: TimeInterval) { myWebView.frame = self.webouterView.bounds } func webView(_ webView: WKWebView...self.showNoticeText(message, time: 1.2) { completionHandler() } } func webView(_ webView: WKWebView...{ //页面开始加载,可在这里给用户loading提示 self.showNoticeWait(text: "加载中..."); } func webView(_ webView: WKWebView...{ //收到服务器重定向请求 } func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction
1、WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程中执行。...初次适配 WKWebView 的时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 的内存占用会增加。...在一些用 webGL 渲染的复杂页面,使用 WKWebView 总体的内存占用(App Process Memory + Other Process Memory)不见得比 UIWebView 少很多。...在 WKWebView 中加载下面的测试链接可以稳定重现白屏现象: http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候 WKWebView.URL...在WKWebView白屏的时候,另一种现象是 webView.titile 会被置空, 因此,可以在 viewWillAppear 的时候检测 webView.title 是否为空来 reload 页面
{ } func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)...{ } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)...{ } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!..., withError error: Error) { } 代理 WKUIDelegate 处理JS弹窗的回调 代理方法 //消息弹窗 func webView(_ webView: WKWebView...) { self.showNoticeText(message, time: 1.2) completionHandler(); } //确认弹窗 func webView(_ webView: WKWebView
前言 在iOS8中,苹果推出了WKWebView。WKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。...WKWebView的设置 WKWebView的主要设置项都在configuration成员中(比如是否允许浏览器手指缩放,h5的浏览器能否自动播放等)这些都属于浏览器本身的设置项。...WKNavigationDelegate 如命名,这个是WKWebView的导航的代理。它控制了WKWebView在加载一个页面流程中的各个关键时间节点的。...相当于WKWebView加载的生命周期方法。...*)webView didFailProvisionalNavigation:(WKNavigation *)navigation{ NSLog(@"页面加载失败"); } // 接收到服务器跳转请求之后调用
如果我们加载一个Web页面时,想一开始唤起键盘,除了web端需要设置input 的focus状态外,我们还需要将keyboardDisplayRequiresUserAction设置为false 问题 然而,WKWebView...-> Void extension WKWebView{ var keyboardDisplayRequiresUserAction: Bool?...} 原文地址 https://stackoverflow.com/questions/32449870/programmatically-focus-on-a-form-in-a-webview-wkwebview
一、初始化 1.initWithFrame:configuration self.wkWebView = [[WKWebView alloc] initWithFrame:frame configuration...:[self _defaultConfiguration]]; 2.WKWebViewConfiguration类说明 wkwebview初始化时的参数配置 websiteDataStore wkwebview...错误的回调 这个错误不是返回500,400等非200错误的回调 这个错误不是返回500,400等非200错误的回调 重要的事情说三遍 实际表现的错误可能是你传输过程中,断网了或者服务器...loadHTMLString:htmlString baseURL:nil]; 5.离线资源包的一点思考 利用离线加载这一特性,我们可以通过服务端资源打包成本地资源包(zip包),通过服务器比对方式下载资源包...}; 1.默认策略NSURLRequestUseProtocolCachePolicy 遵循web的缓存策略,简单介绍: 分为两种缓存 1.对比缓存 (服务器方式比对,304) 需要和服务器做一次比对,
image.png 使用 Charles 抓包(Mac推荐Charles) 发现H5里面 ajax请求失败302,这可能Cookie丢失或Cookie不相同了 原因是 WKWebView 请求携带的 Cookie...stringWithFormat:@"'%@=%@; path=%@; domain=%@';", cookie.Name, cookie.Value, cookie.Path, cookie.Domain]; WKWebview...其他问题可以参考以下文章 WKWebView那些坑- 腾讯Bugly iOS 中 UIWebView 与 WKWebView、JavaScript 与 OC 交互、Cookie 管理看我就够(中...) Can I set the cookies to be used by a WKWebView?
使用WKWebView加载百度页面占用内存(28M) 注意:可以说加载一个网页对内存是没有什么太大影响的,由此看出,单纯加载网页,WKWebView 比 UIWebView 内存强了太多 02-使用...WKWebView加载百度页面占用内存.png 3....基本用法 引入头文件 #import 在viewDidLoad中写好创建 WKWebView 和loadData的方法
WKWebView+UITableView混排 做内容展示页的时候,经常会用到WKWebView+UITableView的混排功能,现在此做一个总结,该功能的实现我采用了四种方法。...self.tableView.contentOffset = CGPointMake(0, _tableViewContentHeight - tableViewHeight); }else { } } 5、结尾 涉及 WKWebView...的使用、WKWebView+UITableView混排、UIScrollView实现原理、WKWebView离线缓存功能 等更多内容都在 https://github.com/wsl2ls/iOS_Tips...和AudioToolBox音视频编解码 8、OpenGL ES学习 9、LeetCode算法练习 10、键盘和UIMenuController的并存问题 11、iOS Crash防护 12、WKWebView
里面所发出的请求即使他是 http/https 也无能为力,先来简单的了解下 WKWebView. # WKWebview iOS8 以后,苹果推出了新框架 Webkit,提供了替换 UIWebView...的组件 WKWebView。...各种 UIWebView 的问题没有了,速度更快了,占用内存少了,一句话,WKWebView 是 App 内部加载网页的最佳选择!...# WebKit 源码分析 由于 WKWebview 是基于 webkit 内核来做的,所以我们在使用的时候需要导入一个这样的东西。...WKWebViewConfiguration * config = [[WKWebViewConfiguration alloc] init]; WKWebView * wkWebView = [[WKWebView
关键词: WKWebView SIGSEGV(11) WebKit::LegacyCustomProtocolManagerProxy::stopLoading(unsigned long long...UIApplicationMain + 212 20 gymbo 0x0000000104f50000 + 717816 21 libdyld.dylib _start + 4 触发场景: 加载WKWebView...的ViewController被释放,但WKWebView内容还在加载中,即使在VC的 dealloc(swift版本的是 deinit 方法)中设置webView stoploading以及WKWebView...解决方案: WKWebView中的WKProcessPool类,设置成单例 代码:swift版 声明WKProcessPool为单例 // MARK: - 扩展WKProcessPool,使其变成单例...,所有WKWebView共享Cookie数据 extension WKProcessPool { static var SharedProcessPool: WKProcessPool = {
由于WKWebView做了安全保护,不能够直接loadRequest一个本地文件,所以iOS9之后需要使用loadFileURL方法.
领取专属 10元无门槛券
手把手带您无忧上云