{ } func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)...{ } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)...{ } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!...调用js方法 加载数据 self.webview.evaluateJavaScript("loadData('123')") { (response, error) in } } 替换页面中的引用的...JS/CSS为本地文件 暂时没有什么好的解决方法 没有像android可以拦截替换的方法
② UIWebView 和 WKWebView 的区别 WKWebView 更快(占用内存可能只有 UIWebView 的1/3~1/4),没有缓存,更为细致地拆分了 UIWebViewDelegate...想要了解更多关于 WKWebView 的特性的,可以自行 Google,这里你可以简单地把它当做是轻量级的 UIWebView。...③为什么现在是时候从 UIWebView 迁移到 WKWebView 了: 截止到我写这篇文章的时候,据 mixpanel 的数据,iOS 9 占有率已达 58.55%,iOS 8 占有率达到了 34.78%...WKWebView 是 iOS 8 之后才有的 WebKit 中的内容,所以之前我们要同时兼容 iOS 7 和 iOS 8 的时候,可以推辞说 UIWebView 和 WKWebView 一起做太麻烦了...正文 常用代理方法 在 WKWebView 中,UIWebViewDelegate 与 UIWebView 被重构成了14类与3个协议,下面给出一些在 UIWebView 中常用的方法的 WKWebView
以及 WKWebView做了一下交互总结。...分别使用 UIWebView 以及 WKWebView 实现效果如下: JavaScriptCore 类库里面有12个类(还有两个是负责导入相关类的头文件以及一个关于WebKit的宏定义);在基本的交互过程中...JavaScript中的逻辑如下: 确认当前使用的是 UIWebView还是 WKWebView,并通过变量 ritl_type确定 点击按钮,根据类型执行不同的操作 客户端通过执行 iosTellSomething...,WKWebView是获取不JSContext的,那咋办?...以及WKWebView交互就算圆满完成啦!
先说说UIWebView中缓存的清除,代码只有一句: [[NSURLCachesharedURLCache]removeAllCachedResponses]; 再说WKWebView中缓存的清除...注意:只有在iOS9之后WKWebView才有清除缓存的方法,在写代码的时候切记对系统版本进行判断。 ... [[NSFileManagerdefaultManager]removeItemAtPath:cookiesFolderPatherror:&errors]; } 增加内容: 使用UIWebView
引言 背景:202012之后苹果将不接受使用UIWebView UIWebView 被拒的解决方案:使用WKWebView替代UIWebView 1、查 SDK是否用 UIWebView 的 API...2、移除/升级含UIWebView的第三方SDK(例:AFNetworking) 3、使用WKWebView替代UIWebView 4、WKWebView与JS交互案例(点击页面图片,调用iOS方法进行图片放大显示...、NSURLSession 和 UIWebView 中的请求; 对于 WKWebView 中发出的网络请求也无能为力,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView...I 使用WKWebView替换UIWebView 1.1 移除/升级包含UIWebView的第三方SDK(grep -r "UIWebView" .) ➜ retail git:(develop)...1.2 移除/替换自己项目使用UIWebView API的代码 自己是否用了该 API 只需要在 Xcode 中全局搜索即可 II 升级包含UIWebView的第三方SDK的具体例子 pod
不过苹果在iOS8以后推出了WKWebView来加载Web。UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView是将会逐步取代笨重的UIWebView。...WKWebView相比于UIWebView WKWebView的内存远远没有UIWebView的开销大,没有缓存 拥有高达60FPS滚动刷新率及内置手势 支持了更多的HTML5特性 高效的...,作为一名客户端的测试人员,我更加关注的主要是wkwebview的各大特性背后带来的测试点,以下就从测试的视角分析一下替换wkwebview之后,测试中遇到比较多的问题: 1、首先就是cookie的问题...),但是替换了wkwebview之后,无网络状态下本地的html网页无法加载,结果: ? ...开发大大排查之后发现是wkwebview中加载的方法变了(wkwebview不支持用loadRequest的方法加载本地的静态HTML),要替换不同的方法来加载,修复之后的效果 3、wkwebview
Instead, use WKWebView for improved security and reliability....将强制开发者升级WKWebView 带有UIWebView Api更新App,会收到类型下面的警告: 更新使用 WebView的应用程序 2019年12月23日 如果您的应用程序仍然使用被废弃的 UIWebView...API 嵌入 Web 内容,我们强烈建议您尽快更新到 WKWebView,以提高安全性和可靠性。...可以说新的App如果还有UIWebView提交是不可能的了,目前机审都过不了。只能老老实实的换成WKWebView了。...App迭代升级的可以暂时松一口气,12月份开始才限制提交,不过还是建议尽早换了,毕竟迟早都是要替换的。 相关地址:https://developer.apple.com/news/?
1.OC与JS交互之UIWebView 创建一个UIWebView 并加载 _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20,...delegate 协议方法 //网页即将开始加载 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest...:(UIWebView *)webView didFailLoadWithError:(NSError *)error; //UIWebView自带了一个方法, 可以直接调用JS代码(转化为string...1.png 代码如下 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request...创建一个WKWebView 并加载 self.webView = [[WKWebView alloc]initWithFrame:CGRectMake(0, 20, kScreenWidth, kScreenHeight
苹果已经不再接收含UIWebView API的新App送审 在之前的文章中,我们有提到过苹果已经弃用 UIWebView,只能使用WKWebView 如果你在上传App包时遇到如下邮件,意味着你上传的app...第一步 在项目中全局搜索 “ UIWebView” ,替换成WKWebView, 这种方式在一定条件下是可以解决问题,即替换好后重新提交包,能正常构建了。...第二步 这时需要排查项目包含UIWebView的静态库,因为第一步全局搜索无法搜索到.a的静态库,可以使用下面的命令 打开终端控制台,cd 到项目目录,使用脚本排查 grep -r UIWebView...就如我这边排查的结果,UnionPaySDK中libPaymentControl.a内含有UIWebView。 $ grep -r UIWebView . Binary file ....Source/Common/Libs/PayService/UnionPaySDK/libPaymentControl.a matches 定位到了静态库,你便可以去官方文档中查询并下载最新版本SDK,替换上重新打包
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted....Instead, use WKWebView for improved security and reliability....Learn more (https://developer.apple.com/documentation/uikit/uiwebview)....Best regards, The App Store Team 所以需要把UIWebView全部替换为WKWebView。
摘要:替换UIWebview为WKWebview时,遇到一个怪异的现象,webview的二级界面回到一级界面时,一级重新渲染时,会直接抛错; 分析问题: 因为,我们的app支持iOS8以上,考虑到UIWebview...的内存使用要比WKWebview的高、加载速度慢,同时,对WKWebview的高达60fps的滚动刷新率以及内置手势充满了羡慕,所以脑袋一抽,撸起袖子直接替换掉原来的UIWebview;这个过程中出现了这个莫名其妙的问题
里面所发出的请求即使他是 http/https 也无能为力,先来简单的了解下 WKWebView. # WKWebview iOS8 以后,苹果推出了新框架 Webkit,提供了替换 UIWebView...的组件 WKWebView。...各种 UIWebView 的问题没有了,速度更快了,占用内存少了,一句话,WKWebView 是 App 内部加载网页的最佳选择!...这么明显的性能提升但是苹果并没有完全放弃 UIWebView 也一定有他的道理,就拿本文要讲的 NSURLProtocol 拦截请求来说,WKWebview 的兼容并不 UIWebView 好,还需要开发者做一些操作...我将网页中所有的图片替换成了柴犬图片 # 值得注意 关于私有 API 因为 WKBrowsingContextController 和 registerSchemeForCustomProtocol
一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...参考文章:《UIWebView与WKWebView》 UIWebView 是苹果继承于 UIView 封装的一个加载 web 内容的类,它可以加载任何远端的web数据展示在你的页面上,你可以像浏览器一样前进后退刷新等操作...UIWebView WKWebView 与 UIWebView 的区别: WKWebView 的内存远远没有 UIWebView 的开销大,而且没有缓存; WKWebView 拥有高达 60FPS...WKWebView 没有做缓存处理,所以对网页需要缓存的加载性能要求没那么高的还是可以考虑 UIWebView 。 二、WKWebView 有哪一些坑?...通用 Fiddler 或 Charles,可以拦截接口替换文件,来调试应用; 十、常见的调试技巧有哪些? 1.
从iOS的角度上来说载体从UIWebView变成了WKWebView,Android有着他们自研的X5当然原生的内核,如果你用着Android7.0也不见得会卡,这才是小程序能出来的根本原因,没有载体,...,我对于他的理解,苹果在iOS8中推出的新框架“Webkit”,其中WKWebView就是用来替换原来的UIWebView,一句话,你用它原来UIWebView出现的各种问题都被解决了。...当然随之而来的会有一些小问题,比如:WKWebView是一个独立进程,那么它的请求就无法通过系统的URL SYSTEM了,你无法像UIWebView一样,可以通过NSURLProtocol来拦截所有的请求...self.wkWebView?....辅助我们做了很多这样的类型转换的事情,如果是UIWebView就没有这么方便的办法了。
JS 与 OC 交互 UIWebView 在 iOS12 中已经被废弃,同时WKWebView在iOS8中已经出现。...UIWebView 相比于 WKWebView 的使用上会简单很多。...UIWebView 初始化: self.webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; self.webView.delegate...]; [self.webView loadFileURL:fileURL allowingReadAccessToURL:fileURL]; 2.1 WKUIDelegate 协议 常用该协议替换...该库支持 UIWebView和WKWebView。使用比较简单,上手容易。
在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。...同样的用WKWebView也可以拦截URL,做JS 与OC交互。关于WKWebView与UIWebView的对比,大家请自动百度或者google。...| 打开百度网页前 | 打开百度网页后 --------- | --------- | ------------- UIWebView | 内存47M | 内存75.6M,最高峰83M WKWebView...| 内存47M | 内存51M WKWebView 拦截URL WKWebView 与 UIWebView 拦截URL 的处理方式基本一样。...代表允许加载,相当于UIWebView的代理方法中 return YES的情况。
概述 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,...WKWebView将逐步取代笨重的UIWebView。...相比UIWebView,WKWebView做了如下优化: WKWebView更多的支持HTML5的特性 WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4 WKWebView...高达60fps的滚动刷新率和丰富的内置手势 WKWebView具有Safari相同的JavaScript引擎 WKWebView增加了加载进度属性 UIWebView UIWebView继承与UIView...使用上和UIWebView用法大体一致,主要是新增和优化了一些方法。 例如,使用WKWebView加载百度首页。
原文作者:享物说 https://juejin.im/post/5c778d86e51d4506304ee348 本文对比的是 UIWebView、WKWebView、flutter_webview_plugin...结论: 速度(didStart -> didFinish) UIWebView > flutter_webview > WKWebView 速度(viewDidLoad -> didFinish)WKWebView...flutter 里使用的就是 WK,所以和原生的 WKWebView 一样都是 444 分,比 UIWebView 的 437 略胜一筹。...结论:兼容性 WKWebView = flutter_webview > UIWebView 总结 UIWebView: 速度相比较 WKWebView 稍快一点,但是内存是一大硬伤,所以只要条件允许,...是比UIWebView更好的选择,推荐使用; flutter_webView_plugin:在iOS中使用的就是原生的WKWebView,所以总体和 native WKWebView 表现差不多。
UIWebView 和 WKWebView 兼容 iOS8 以后苹果推出了一套新的 WKWebView,对于 UIWebView 和 WKWebView 的区别,总结如下: ?...WKWebView 的主要优点是 JS 执行速度快、内存占用小,刚一推出就被开发者所追捧,但是不知道是不是因为苹果爸爸太任性,WKWebView 设计上并没有与 UIWebView 保持一致,无法自动存储...本套框架的预加载和缓存模块儿需要借助 NSURLProtocol 实现,所以这里还是优先使用 UIWebView(想吐个槽,其实如果预加载和缓存这套系统做好以后,UIWebView 的效果并没不比 WKWebView...YZWebView 是对 UIWebView 和 WKWebView 进行封装的类,结构设计如下: ?...YZWebViewDelegate,UIWebView 和 WKWebView 代理的回调代理。
使用UIWebView加载百度页面占用内存(92.9M) 01-使用UIWebView加载百度页面占用内存.png 2....使用WKWebView加载百度页面占用内存(28M) 注意:可以说加载一个网页对内存是没有什么太大影响的,由此看出,单纯加载网页,WKWebView 比 UIWebView 内存强了太多 02-使用...WKWebView加载百度页面占用内存.png 3....基本用法 引入头文件 #import 在viewDidLoad中写好创建 WKWebView 和loadData的方法
领取专属 10元无门槛券
手把手带您无忧上云